Laravel 学習記録 #014 リソースコントローラーを学ぶ
Laravelのリソースコントローラーについて学習したものをまとめてます。
リソースコントローラーについて
EloquentModelをリソースと考えたときに、大体これやるよねってアクションをまとめたもの
CRUD操作などを一気に作成してくれる
使ってみる
コントローラー作成
以下のコマンドで作成します。
--resourceをオプションとして追加
php artisan make:controller ResourceController --resource
すると、コントローラーにアクションがデフォルトで用意されます。
index(一覧表示)
create(新規作成フォーム表示)
store(新規作成処理)
show(単一リソース表示)
edit(編集フォーム表示)
update(更新処理)
destroy(削除処理)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ResourceController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}
ルート設定
これらをweb.phpでルート設定するには
以下のようにします。
resourceメソッドにindexで入ってくるURLだけ設定でOKです。
<?php
use App\Http\Controllers\ResourceController;
Route::resource('resource', ResourceController::class);
個人的にはこれ1つでまとめられるのがすごくうれしい。
しっかりルート設定されているかを確認します。
php artisan route:list
GET|HEAD resource .... resource.index › ResourceController@index
POST resource .... resource.store › ResourceController@store
GET|HEAD resource/create .... resource.create › ResourceController@create
GET|HEAD resource/{resource} .... resource.show › ResourceController@show
PUT|PATCH resource/{resource} ..... resource.update › ResourceController@update
DELETE resource/{resource} .... resource.destroy › ResourceController@destroy
GET|HEAD resource/{resource}/edit .... resource.edit › ResourceController@edit
こんな感じで、設定されているようでした。
既存のプロジェクトだとガンガン使うこともなさそうですが
新規プロジェクトの場合は、考慮に入れておきたいですね。
この記事が気に入ったらサポートをしてみませんか?