はじめに
リソースコントローラ
php artisan make:controller ContactFormController --resource
readouble.com
ルーティングの設定
Route::resource('contacts', ContactFormController::class);
と記述すると下記のようにルーティングされる
+--------+-----------+------------------------------------------------+--------------------------------+------------------------------------------------------------------------+--------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+------------------------------------------------+--------------------------------+------------------------------------------------------------------------+--------------------------------------+
| | POST | contacts | contacts.store | App\Http\Controllers\ContactFormController@store | web |
| | GET|HEAD | contacts | contacts.index | App\Http\Controllers\ContactFormController@index | web |
| | GET|HEAD | contacts/create | contacts.create | App\Http\Controllers\ContactFormController@create | web |
| | PUT|PATCH | contacts/{contact} | contacts.update | App\Http\Controllers\ContactFormController@update | web |
| | GET|HEAD | contacts/{contact} | contacts.show | App\Http\Controllers\ContactFormController@show | web |
| | DELETE | contacts/{contact} | contacts.destroy | App\Http\Controllers\ContactFormController@destroy | web |
| | GET|HEAD | contacts/{contact}/edit | contacts.edit | App\Http\Controllers\ContactFormController@edit | web |
- 下記のように記述すると特定のリソースだけルーティングすることが可能である。
Route::resource('contacts', ContactFormController::class)->only([
'index', 'show'
]);
+--------+-----------+------------------------------------------------+--------------------------------+------------------------------------------------------------------------+--------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+------------------------------------------------+--------------------------------+------------------------------------------------------------------------+--------------------------------------+
| | GET|HEAD | contacts | contacts.index | App\Http\Controllers\ContactFormController@index | web |
| | GET|HEAD | contacts/{contact} | contacts.show | App\Http\Controllers\ContactFormController@show | web |
- 対象のページを会員認証させたい場合、下記のようにmiddlwareでauth認証を行う。
Route::group(['prefix'=> 'contact', 'middleware' => 'auth'], function () {
Route::get('/index', [ContactFormController::class, 'index']);
});
認証ディレクティブ
- View側は下記のようにログイン認証判定を行うことができる
@guest
// ユーザーは認証されていません。
@else
// ユーザーは認証されています。
@endguest
readouble.com