【问题标题】:Passing variable to same controller getting error "Too few arguments to function"将变量传递给同一个控制器得到错误“函数的参数太少”
【发布时间】:2020-12-31 20:40:57
【问题描述】:

在我的控制器中,我收到错误函数的参数太少

    public function getpayrollID($id)
    {
        $fetch2 = DB::table('payroll_details')->where('payroll_daily_id',$id)  
       ->get();
                foreach($fetch as $payrollID){
                    $payroll_id = $payrollID->payroll_daily_id;
                }
    
       }
        public function payroll($id,$payroll_id)
        {
            $fetch = DB::table('payroll_attendance')->where('wrk_id',$id)
            ->where('payroll_daily_id',$payroll_id)
    
            ->select(DB::raw('count(wrk_id) as totattn')) 
           ->get();
    
            return $fetch;
          
        
        }

可以在 web.php 中路由

Route::get('api/payroll_date/{id}','API\payrollController@payroll');
Route::get('api/payroll_id/{id}','API\payrollController@getpayrollID')

我正在使用 axios 获取

axios.get('/api/getpayroll_id/'+ this.$route.params.id).then(({data})=>{ (this.payroll_id = data);

    axios.get('/api/payroll_date/'+ this.wrk_id).then(({data})=>{
      (this.payrolldate = data);

【问题讨论】:

  • 您的路线payroll 和功能getpayrollID 不匹配,请添加正确的或修复它
  • 对不起,我忘了添加路线。请检查一下

标签: laravel eloquent axios


【解决方案1】:

你在你的方法中得到了两个变量,你在路由中传递了一个变量试试这个

Route::get('api/payroll_date/{id}/{payroll_id}','API\payrollController@payroll');

我希望这是你的答案。

【讨论】:

  • 将上述路线用于您的工资核算方法
【解决方案2】:

如果你想接受($id,$payroll_id) 参数,那么你也需要从路由中接受

Route::get('api/payroll_id/{id}/{payroll_id}','API\payrollController@getpayrollID')

或者如果你不确定第二个参数是否可以通过?这个符号标记为可选

Route::get('api/payroll_id/{id}/{payroll_id?}','API\payrollController@getpayrollID')

【讨论】:

  • @azakura 立即查看
  • @azakura 在getpayrollID 函数中没有任何返回语句
  • 我要返回工资单中的数据
  • 即使我将 return 放入 getpayrollID 函数中,它在 payroll 函数中也没有返回任何内容
  • @azakura 没有得到你想要的结果
【解决方案3】:

将路线更改为:

Route::get('api/payroll_date/{id}/{payroll_id}','API\payrollController@payroll');
Route::get('api/payroll_id/{id}','API\payrollController@getpayrollID')

除了调用 payroll 时,还应该发送两个参数:


axios.get('/api/payroll_date/'+ this.wrk_id+'/'+payroll_id).then(({data})=>{
      (this.payrolldate = data);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多