Laravel:如何将表单中的值传递给控制器​​?

时间:2013-07-27 01:46:16

标签: php laravel laravel-4

我有一张表格:

{ Form::open(array('action' => 'RatesController@postUserRate', $client->id)) }}
    {{ Form::text('rate', '', array('placeholder' => 'Enter new custom client rate...')) }}
    {{ Form::submit('Submit', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}

如何通过表单将$ client-> id值传递给我的控制器方法?

我目前有一个控制器方法,如下所示:

public function postUserRate($id)
{
    $currentUser = User::find(Sentry::getUser()->id);
    $userRate = DB::table('users_rates')->where('user_id', $currentUser->id)->where('client_id', $id)->pluck('rate');

    if(is_null($userRate))
    {
    ...
    }else{
    ....
    }
}

错误日志显示“对于RatesController :: postUserRate()缺少参数1”

关于如何将此$ client-> id传递给我的控制器的任何想法,以便我可以按照我的意愿使用它?

2 个答案:

答案 0 :(得分:17)

{{ Form::hidden('id', $client->id) }}添加到表单中。然后,当它发布时,您可以使用Input::get('id')按平常获取其值。

另外,删除postUserRate方法的参数。

答案 1 :(得分:3)

您只需使用:

Form::open(array('action' => array('Controller@method', $user->id)))

  • 变量$user->id作为参数传递给方法method,最后一个也应该接收一个参数,如下所示:method($userId)

资料来源:Laravel documentation