【问题标题】:Laravel Too few arguments to function, 0 passed and exactly 1 expectedLaravel 函数的参数太少,传递了 0,预期正好 1
【发布时间】:2020-05-10 11:29:27
【问题描述】:

所以我正在制作会员提升功能,我已经正确设置了它,但由于某种原因,我得到了错误:Laravel Too few arguments to function, 0 passed and exactly 1 expected

这是我的路由方法:

Route::post('...

这是表格:

<form action="{{ route('members.promote', ['id' => $staff_member->id]) }}" method="POST">
    @csrf
        <button type="submit" class="btn-floating btn-large waves-effect waves-light btn-small green">
          <i class="material-icons">keyboard_arrow_up</i>
        </button>
</form>

这是控制器:

public function promote($id)
    {
        $query = User::find($id);

        $query->auth = $query->auth + 1;
        $query->save();

        return redirect()->route('members.manage');
    }

我理解这个错误意味着我没有传递一个 ID,但我显然已经传递了。它还将 ?id=1 添加到我的 URL 中,因此我显然已正确设置它..

谢谢。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您需要在路由文件中定义一个路由,例如:

    Route::post('members/promote/{id}', 'ControllerName@promote');
    

    或者如果您正在对路线进行分组:

    Route::group(array('prefix' => 'members'),function() {
        Route::post('promote/{id}', 'ControllerName@promote');
        ....//Other members routes
    });
    

    【讨论】:

      【解决方案2】:

      试试这个

      Route::post('/your_url_name/{id}',[
          'uses'=>'ControllerName@promote',
          'as'=>'members.promote'
      ]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 2021-03-29
        • 2019-01-23
        • 2019-10-29
        • 2020-04-22
        相关资源
        最近更新 更多