人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます:タグ「ルーティング」での検索

Laravel の ルーティングで Route::resource() で生成されるルート名の先頭に 文字列を加える

Route::group(['prefix' => 'admin', 'middleware' => 'admin', 'namespace' => 'Admin'], function () {
    Route::resource("consentforms","ConsentformController");
});

とするとルート名は

| GET|HEAD  | admin/consentforms/create              | consentforms.create  | 
| GET|HEAD  | admin/consentforms/{consentform}       | consentforms.show    | 
| PUT|PATCH | admin/consentforms/{consentform}       | consentforms.update  | 
  ... (以下続く)

と、なりますが
次の様に 'as' => 'admin.' を使うと 名前の先頭に admin. が追加されます

・'as' => 'admin. を追加

Route::group(['prefix' => 'admin', 'middleware' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.'], function () {
    Route::resource("consentforms","ConsentformController");
});

 ↓ この様なルート名になります

| GET|HEAD  | admin/consentforms/create              | admin.consentforms.create  | 
| GET|HEAD  | admin/consentforms/{consentform}       | admin.consentforms.show    | 
| PUT|PATCH | admin/consentforms/{consentform}       | admin.consentforms.update  | 
  ... (以下続く)

No.1425
01/25 17:35

edit

ルーティング

LaravelのCRUD操作のメソッドとルーティング一覧

LaravelのCRUD操作のメソッドとルーティング一覧

例 : teams モデルの場合

HTTPメソッド URL例 ルーティング名 メソッド名
データの一覧表示
GET,HEAD teams teams.index App\Http\Controllers\TeamController@index
データの詳細表示
GET,HEAD teams/123456 teams.show App\Http\Controllers\TeamController@show
データの新規作成
GET,HEAD teams/create teams.create App\Http\Controllers\TeamController@create
POST teams teams.store App\Http\Controllers\TeamController@store
データの更新
GET,HEAD teams/123456/edit teams.edit App\Http\Controllers\TeamController@edit
PUT,PATCH teams/123456 teams.update App\Http\Controllers\TeamController@update
データの削除
DELETE teams/123456 teams.destroy App\Http\Controllers\TeamController@destroy

● クロージャで path_info のパラメーターを渡す

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

● クロージャで Request と パラメータ id を渡す

use \Illuminate\Http\Request;
Route::get("/{id}", function (Request $request, $id) {
    return App\Http\Controllers\HomeJaController::index( $request, $id ); }
})->where([ 'id' => '[0-9]+' ]);

( id は 正規表現で数字のみに限定しておきます。 )

● ルーターの記述方法(個別)

/routes/web.php

メソッド: 「PUT」
URL: 「teams/{id}/myteamupdate」
を ↓ 
コントローラー「TeamController」の メソッド「myteamupdate」
にルーティングする

Route::put("teams/{id}/myteamupdate", "TeamController@myteamupdate")->name('teams.myteamupdate'); // Add this line in routes.php

● ルーターの記述方法(CRUD一括)

/routes/web.php

clients のCRUD関連メソッドを一括でルーティングする

Route::resource("clients","ClientController");

● ルーターの記述方法(CRUDから一部を除外)

CRUDから一部を除外する方法です

/routes/web.php

Route::resource("clients","ClientController");

 ↓ 「SHOWメソッド」「DELETE メソッド」を除外します

Route::resource('clients', 'ClientController', ['except' => ['show', 'delete'] ]);

● ルーティング変更を確認する

コマンドラインから以下のコマンドでルーティングを確認します。
peco コマンドがある場合は peco を通しましょう。

php artisan route:list | peco
No.1315
02/12 16:32

edit

ルーティング