【Laravel入門】Route::groupについて学ぶ

2024年3月30日Laravel,PHP

ミニマリスト_カミ

kamiです。
TwitterYoutubeもやってます。

Route::groupとは

groupとはURIの接頭部や名前空間の接頭部を共通化できます。
ルートをグループ化し、共通の属性や中間ウェアを適用するための機能です。
この機能を使用することで、同じ属性や中間ウェアを持つ複数のルートをまとめて設定し、コードの重複を減少させることができます。

groupの書き方

group(['prefix' => '共通URI', 'as' => '共通ルート名' ]{ 
    Route::get();
    Route::get();
})

※prefixやasは省略してgroupを記述できます

スポンサードサーチ

RouteRegistrarクラスのgroupメソッド

class RouteRegistrar
{
    use CreatesRegularExpressionRouteConstraints;

    /**
     * Create a route group with shared attributes.
     *
     * @param  \Closure|array|string  $callback
     * @return $this
     */
    public function group($callback)
    {
        $this->router->group($this->attributes, $callback);

        return $this;
    }
}

通常のルーティング

通常のルーティング

それぞれのルートを作成する場合は以下のようになる。

Route::get('user', function () { return view('user.index'); })->name('user.index');
Route::get('user/rejst', function () { return view('user.rejst'); })->name('user.rejst');

URIのuserと、ルート名(nameメソッド)のuserが共通処理があるのでグループ化させることができます。

グループ化のルーティング

Route::group(['prefix' => 'user', 'as' => 'user.'], function() {
    Route::get('/', function () { return view('user.index'); })->name('index');
    Route::get('rejst', function () { return view('user.rejst'); })->name('rejst');
});

groupメソッドを使うとコードも少なくなるので、管理やコードを見たときに分かりやすくすることができます。

スポンサードサーチ

コントローラーのルーティング

コントローラーのルーティング

use App\Http\Controllers\AuthenticationController;
use Illuminate\Support\Facades\Route;

Route::post('/login', [AuthenticationController::class, 'login']);
Route::get('/logout', [AuthenticationController::class, 'logout'])->name('logout');

グループ化のルーティング

use App\Http\Controllers\AuthenticationController;
use Illuminate\Support\Facades\Route;

Route::controller(AuthenticationController::class)->group(function () {
    Route::post('/login', 'login');
    Route::get('/logout', 'logout')->name('logout');
});

実装やエラーが解決できない場合

プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。

考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。

そういう時は聞ける先輩や、メンターに相談することが大事です。

僕にも相談可能なので気軽に相談してください。

Twitterからの連絡だと確実ですよ。

オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。

Web開発で分からない時

オンライン完結型スクール DMM WEBCAMP PRO

アプリ開発で分からない時

プログラミング×稼げる副業スキルはテックキャンプ

プログラミングについて分からない時

【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。
ミニマリスト_カミ

僕への個人でもメンターでも、スクールでもお好きな方を活用ください。

Laravel,PHP

Posted by kami