1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】Webアプリ開発について②

Posted at

今回は前回に引き続き、Webアプリの開発について記事を書いていこうと思います。

ルーティングとは?
LaravelのルーティングはHTTPリクエストのパスや内容に対応するコントローラに処理を渡します。

リソースコントローラー(7つまとめて作成)について

7つのメソッドをまとめて作ることができます。
7つのURLとまとめて作るメソッドをつくります。

php artisan make:controller ContactFormController ̶--resource

「--resource」をつけることで、7つのメソッドをまとめて作れます。

下記パスで7つのメソッドがひな形で作成されます。

app/Http/Controllers

image.png

次に、コントローラを指すリソースルートを登録します。

routes/web.php
use App\Http\Controllers\ContactFormController;

「Route::~」SAFARIルートの7つまとめてってこどでリソースというメソッドがあります。
そこに、「contacts」フォルダを記載し、第2引数がコントローラーの名前ですので、「ContactFormController::class」を記載します。

routes/web.php
Route::resource(`contacts`, ContactFormController::class);

web.phpに記載が終わったら、コマンドプロンプトに戻り、listのコマンドをたたきます。
結果にURLが7つ増えていることが確認できます。

■コマンドプロンプトにて
php artisan route:list

リソースコントローラー(1行ずづバージョン)について

前では7つのリソースをまとめて作成しましたが、
1行ずづ記載をすることも可能です。

routes/web.php
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 

⇒Routeゲットでたたくフォルダ名を記載し、
フォルダ名をたたき使うコントローラーを指定します。
コントローラーの中のメソッドを書きます。
※「name」をつけるとroot情報に名前をつけることができ、ビュー側でリンクなどを張るときに便利です。

web.phpに記載が終わったら、コマンドプロンプトに戻り、listのコマンドをたたきます。
結果にURLが1つ増えていることが確認できます。

■コマンドプロンプトにて
php artisan route:list

同じようなファイル名が続いた場合

下記だと見にくいためグループ化して、記載することができます。

下記はグループ化していない状態です。

routes/web.php
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 
Route::get('contacts', [ ContactFormController::class, 'index'])->name('contacts.index'); 

グループ化した状態だと下記のコマンドとなります。

routes/web.php
// グループ化してまとめるとシンプルに書ける 
Route::prefix('contacts') // 頭に contacts をつける 
    ->middleware(['auth']) // 認証 
    ->name('contacts.') // ルート名 
    ->controller(ContactFormController::class) // コントローラ指定(laravel9から) 
    ->group(function(){ // グループ化 
        Route::get('/', 'index')->name('index'); // 名前つきルート 
});

#まとめ
リソースコントローラーには2つの記載方法があります。
まとめて記載できる方法と一つずづ記載する方法があります。
現場入った際には、これらを使いわけるとよいですね!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?