如何通过Request $请求从URL获取id? (Laravel 5.3)

时间:2017-03-17 02:51:19

标签: php laravel routes request laravel-5.3

我在视图上的链接href是这样的:

<a href="{{ route('message.inbox.detail.id', ['id' => $message->id]) }}" class="btn btn-default">
    <span class="fa fa-eye"></span> {{ trans('button.view') }}
</a>

我的路线是这样的:

Route::get('message/inbox/detail/id/{id}', ['as'=>'message.inbox.detail.id','uses'=>'MessageController@detail']);

点击后,网址显示如下:

http://myshop.dev/message/inbox/detail/id/58cadfba607a1d2ac4000254

我希望通过Request $request

获取ID

在控制器上,我尝试这样:

public function detail(Request $request)
{
    dd($request->input('id'));
}

结果:null

我该如何解决?

3 个答案:

答案 0 :(得分:7)

你可以这样得到它

$request->route('id')

内部请求类,您可以通过这种方式访问​​它

$this->route('id')

我通常在验证字段时使用它以确保它是唯一的,我需要在我进行更新时按ID排除模型

答案 1 :(得分:1)

通过此获取ID:

public function detail($id)
{
   dd($id);
}

答案 2 :(得分:1)

这是因为您通过网址传递了id参数,您应该使用这样的表单发送

{!! Form::open(['route'=>' route('message.inbox.detail.id', 'method'=> 'POST']) !!}
 <input type="hidden" name="id" value="{{ $message->id }}" />
{!! Form::submit({{ trans('button.view') }}, ['class'=>'btn btn-default']) !!}
{!! Form::close() !!}

现在您可以通过控制器中的请求访问

public function detail(Request $request)
{


 dd($request->input('id'));
}