2017-09-21 8 views
1

こんにちは私はlaravel 5.4を使用しています。ルーティングでモデルバインディングを使用します。 しかし、私は、コントローラの機能を使用します:コントローラ関数laravel routingとのモデルバインド

Route::get('/user/{id}', '[email protected]'); 

をしかし、私は、私のようなものだろう、私のコントローラでその結合モデルを使用します:私はしませんので

public function show(Request $request, User $user){ 
    dd($user->id) 
} 

しかし、今$user->idはnullですどのようにバインディングモデルを知っていて、コントローラ機能を使用しています。 私は試してみました:

Route::model('user', 'User'); 

しかし、それは動作しません。

可能ですか?あなたのためのLaravelマニュアルからまあ

+1

あなたのルートで最初に間違っているのは 'Route :: get( '/ user/{id}'、 'usersController @ show');' 'Route :: get( '/ user/{user } '、' usersController @ show '); ' – teeyo

答えて

0

あなたがRoute::model('user', 'User');を必要としない、Laravelはないこと:

Laravelは自動的にルートや コントローラのアクションで定義された雄弁なモデルを解決し、その型を示唆した変数名はルートと一致します セグメント名。

だから、この行を変更:

Route::get('/user/{user}', '[email protected]'); 

をそして、あなたは変数の型ヒントを使用していることから、Laravelは自動的にユーザーのモデルにバインドします。

関連する問題