Laravel5.6 Controllerの作成とルーティング設定

今回は、Laravel5.6での開発においてMVCモデルのC「Controller」の作成、ブラウザからの実行確認まで実装・解説していきます。
artisanコマンドを使用してのController生成や、ルート設定の確認なども本記事で紹介します。

開発環境については、過去の記事を参考にしてください。

Controllerの作成

まず、Controllerはプロジェクトのapp/Http/Controllers/に配置します。
今回はArticleController.phpという名前で作成します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller {
	public function index() {
		return 'Article';
	}
}

ルーティングの設定

ルーティングの設定は、プロジェクトのroute/web.phpを編集します。
ルーティング設定の構文

Route::メソッド(URI, コントローラー@メソッド);

ArticleControllerをルーティング設定すると以下のようになります。

Route::get('/Article','ArticleController@index');

ターミナルからartisanを使ってルートを確認してみます。

php artisan route:list

先ほど登録した、URI:Articleが登録されていれば成功です。

artisanコマンドを使ってControllerを生成する

ターミナルからartisanコマンドを使用してControllerを生成します。

php artisan make:controller ArticleController [-r]

[-r]はオプションで-rをつけるとCRUDに必要なメソッドも生成してくれます。

CRUDをルーティングする

先ほど生成したControllerをルーティング設定します。

Route::resource('/Article', 'ArticleController');

以下のCRUDメソッドのルーティング設定を上記の1行で設定することができます。

// GETメソッドで/Articleへアクセスした時のアクション
Route::get('/Article', 'ArticleController@index')->name('Article.index');

// POSTメソッドで/Articleへアクセスした時のアクション
Route::post('/Article', 'ArticleController@store')->name('Article.store');

// GETメソッドで/Article/createへアクセスした時のアクション
Route::get('/Article/create', 'ArticleController@create')->name('Article.create');

// GETメソッドで/Article/{Top}へアクセスした時のアクション
Route::get('/Article/{Top}', 'ArticleController@show')->name('Article.show');

// PUT,PATCHメソッドで/Article/{Top}へアクセスした時のアクション
Route::match(['put','patch'],'/Article/{Top}', 'ArticleController@update')->name('Article.update');

// DELETEメソッドで/Article/{Top}へアクセスした時のアクション
Route::delete('/Article/{Top}', 'ArticleController@destroy')->name('Article.delete');

// GETメソッドで/Article/{Top}/editへアクセスした時のアクション
Route::get('/Article/{Top}/edit', 'ArticleController@edit')->name('Article.edit');

まとめ

CRUDに必要なメソッドを備えたControllerの生成や、一括ルーティング設定などを紹介しました。
HTTPメソッドのGETやPOSTはよく使われますが、PUTやDELETEなどの使い方なども今後紹介していきたいと思います。

Other
CameraCafe
コメントはまだありません

お気軽にコメントをどうぞ。