作成日:2022-11-30, 更新日:2022-11-30
ルーティングに関係のあるファイル
- routes/xxx.php
- app/Providers/RouteServiceProvider.php
viewを開く
▼routes/xxx.php
Route::get('/', function () { return view('welcome'); // 「method: get」で「/」にアクセスがあったら「resources/welcome.blade.php」を出力 });
コントローラーに飛ばす
フルPATH指定、useで指定と記載法がある
useで指定
▼routes/api.phpに記載したときの例(※routes/web.phpに記載するときも同じお作法)
use App\Http\Controllers\Api; ~ 省略 ~ Route::post('/foo', [Api\hoge::class, 'test']); // 「method: post」で「api/foo」にアクセスがあったら「App\Http\Controllers\Api\hoge.php」の「test()」を実行
※「::class」ってのは決め打ちっぽい
useでファイルまで指定
useの記載が増えるってのが個人的に苦手。さらにコントローラーを修正するときに「Route::xxx()」を見て、そこから数あるuseの中から対象のファイルを探すってのが面倒に感じる
use App\Http\Controllers\Api\hoge; ~ 省略 ~ Route::post('/foo', [hoge::class, 'test']);
フルPATH指定
長くなるので個人的には避けたい
~ 省略 ~ Route::post('/foo', 'App\Http\Controllers\Api\hoge@test');
コントローラーとの兼ね合い
コントローラー側には「request型」が引数で渡ってくるっぽい
▼こんな感じのルーティング
use App\Http\Controllers\Api; ~ 省略 ~ Route::post('/foo', [Api\hoge::class, 'test']);
▼コントローラー側: App\Http\Controllers\Api\hoge.php
~ 省略 ~ use Illuminate\Http\Request; // ← コイツが必要らしい。「vendor\laravel\framework\src\Illuminate」の中にいる ~ 省略 ~ class hoge extends Controller { public function test(Request $request){ // $requestに色々と格納されるっぽい var_dump($request); exit; } }
▼単純な入力値をマルっと取得
$val_many = $request->all()
▼ユーザーの入力値をマルっと取得
$val_many = $request->input()
※「all()」と「input()」の違いは…未調査
▼キーを指定して取得
$val = $request->input(キー, キーが含まれないときの初期値)
▼配列入力(※詳細は未調査。ひとまずメモだけ)
$val = $request->input('products.0.name'); $val = $request->input('products.*.name');