web-dev-qa-db-ja.com

Request $ requestを使用してURLからIDを取得するにはどうすればよいですか? (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']);

クリックすると、URLは次のように表示されます。

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

Request $requestでIDを取得したい

コントローラーでは、次のように試します。

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

結果:null

どうすれば解決できますか?

6
samuel toh

あなたはそれをこのように得ることができます

$request->route('id')

リクエストクラス内では、この方法でアクセスできます

$this->route('id')

私は通常、フィールドを検証して一意であることを確認するときに使用します。更新を行うときは、IDでモデルを除外する必要があります。

9
Martynas A.

これは、URLを介して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'));
}
1
Irvin Chan

これを介してIDを取得します。

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