PHPバージョン:7.1.14
Laravelバージョン:5.7.9
前回の続きです!
今回はResourceController作成時にモデルを指定します!
以前作成した、app>Models>Articleモデルを使用します!
ResourceController作成
$ php artisan make:controller ResController --resource --model=Models/Article
こちらのコマンドでResourceControllerを作成します。
前回との違いは"--model=Models/Article"オプションが付いた点です。
<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ResController extends Controller { public function index() { } public function create() { } public function store(Request $request) { } public function show(Article $article) { } public function edit(Article $article) { } public function update(Request $request, Article $article) { } public function destroy(Article $article) { } }
app>Http>Controllers>ResController.php
前回と違い、
use App\Models\Article;
が最初から記述されています。
またモデルを指定しなかった時は"$id"となっていた引数部分が、
Articleモデルでタイプヒントされた"$article"となっています。
routes>web.phpについては前回と同じく
<?php Route::resource('articles', 'ResController');
routes>web.php
これだけで大丈夫です。
※※※注意※※※
ResourceControllerでモデルを指定する場合は、
web.phpのRoute::resourceメソッドの第一引数に指定するURI部分は
モデルの複数形にしてください!
showやeditメソッドの引数となっているモデルは、
URLにそのモデルのidを指定することで Bindingされ取得できます。
web.phpでの指定を誤るとBindingされず、
引数のモデルはnullとなります。
今回はここまでです、ありがとうございました〜!