🕹
laravelのコントローラの書き方
前回でルーティングのさせかたの記事を書きました。
今回はLaravelのコントローラについて書いていきます。
作成方法
下記コマンドでコントローラを作成します。
# UserControllerを作成したいとき
# コントローラだとわかるように末尾にControllerとつける
php artisan make:controller UserController
コントローラはapp/Http/Controllersディレクトリに保存されます。
遷移させる方法
resources/routes/web.php
// コントローラに遷移させたいとき
// tests/testにアクセスすると
// UserControllerクラスのindexメソッドが呼び出されます
Route::get('tests/test', [UserController::class, 'index']);
// 動的に遷移させたいときは{}で囲む
Route::get('/user/{id}', [UserController::class, 'show']);
使い方
コントローラを使う場合は、下記のようにルーティングで指定した関数名(ここではindex関数とshow関数)を定義しておく必要があります。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
// 'tests/test'にアクセスするとここの処理が実行される
// 下記の場合、viewのtests/test.blade.phpの処理が実行される
return view('tests.test');
}
/**
* 指定ユーザーのプロファイルを表示
*
* @param int $id
* @return \Illuminate\View\View
*/
public function show($id)
{
return view('user.profile', [
'user' => User::findOrFail($id)
]);
}
}
参考
Discussion