メモ > 技術 > フレームワーク: Laravel > ルーティング
ルーティング
■ルーティングの設定と確認
ルーティング 5.4 Laravel
https://readouble.com/laravel/5.4/ja/routing.html
コントローラ 5.4 Laravel
https://readouble.com/laravel/5.4/ja/controllers.html
Laravel 5.4から可能になった新しいRouteの書き方 | cupOF Interests
http://co.bsnws.net/article/194
// 通常のルーティング
Route::get('/hello', function () {
return 'Hello World';
});
// パラメータを取得
Route::get('/user/{id?}', function ($id = null) {
return 'User ' . $id;
});
// ルートプレフィックス
Route::prefix('/admin')->group(function () {
Route::get('/user/{id?}', function ($id = null) {
return 'Admin User ' . $id;
});
});
以下のコマンドでルーティングを確認できる
php artisan route:list
■Resourcefulにルーティング
Laravelのルーティング書き方まとめ - Qiita
http://qiita.com/michiomochi@github/items/de19c560bc1dc19d698c
Route::resource() で典型的なCRUDルートを設定できる
Route::resource('photos', 'PhotoController');
only で特定のメソッドのみ有効にできる
Route::resource('photos', 'PhotoController', ['only' => ['store']]);
以下、CRUDの具体例
\test\routes\web.php
// Resourcefulルーティング
Route::resource('/restful', 'RestfulController');
\test\app\Http\Controllers\RestfulController.php
<?php
namespace App\Http\Controllers;
class RestfulController extends Controller
{
// getでrestful/にアクセスされた場合
public function index()
{
return 'RestfulController@index()';
}
// getでrestful/createにアクセスされた場合
public function create()
{
return 'RestfulController@create()';
}
// postでrestful/にアクセスされた場合
public function store()
{
return 'RestfulController@store()';
}
// getでrestful/messageにアクセスされた場合
public function show($message)
{
return 'RestfulController@show()';
}
// getでrestful/message/editにアクセスされた場合
public function edit($message)
{
return 'RestfulController@edit()';
}
// putまたはpatchでrestful/messageにアクセスされた場合
public function update($message)
{
return 'RestfulController@update()';
}
// deleteでrestful/messageにアクセスされた場合
public function destroy($message)
{
return 'RestfulController@destroy()';
}
}
■外部から直接POSTする
普通にPOSTでリクエストすると、VerifyCsrfTokenによってアクセスが拒否される
VerifyCsrfToken の $except に対象URLを記載することにより、VerifyCsrfTokenの対象から除外できる
以下は「/enter」を除外する例
/app/Http/Middleware/VerifyCsrfToken.php
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* CSRFの確認を除外するURI
*
* @var array
*/
protected $except = [
//
'/enter',
];
}