2017-06-18 9 views
1

私はwebiste上のすべてのルートにプレフィックスパラメータを渡しM」:Laravel 5.4:ルートに最初に、デフォルトのパラメータを設定する方法()関数

Route::prefix("{param}")->group(function() { 
    # code... 
}); 

は時々私はroute()関数を呼び出す必要があります再生回数私のような最初のパラメータとして$paramを渡す必要があるため、問題は、そこにある:\ビューは

リソース\ welcome.blade.php

<a href="{{ route('about-us', $param) }}">About Us</a> 

質問です:私はroute()$paramを渡す必要はありませんなぜなら、それは必要でないからです。どのようにこの問題を回避するには、ちょうど次の操作を行います

<a href="{{ route('about-us') }}">About Us</a> 

はミドルウェアを作成し、route()機能に「グローバル」構成を設定する方法はありますか?

あなたはこのようなあなたのルートを保護することができ、あなたのコントローラーで

答えて

1

@William Correaアプローチを使用して、既定のLaravel関数ヘルパーroute()にプレフィックスパラメータを設定するためのヘルパ関数を作成しました。

アプリ\ヘルパー\

function routex($route, $params = []) 
{ 
    if (!is_array($params)) { 
     $params = [$params]; 
    } 

    // Set the first parameter to App::getLocale() 
    array_unshift($params, App::getLocale()); 
    return route($route, $params); 
} 

のfunctions.php今、私はちょうどroutex('about-us')を使用し、名前でroute()へのリンクを取得しようとroutex()機能はApp::getLocale()または他のあなたが欲しいもののような接頭辞パラメータを置くとき、 。

0

public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

、あなたはこの

のような接頭辞なしでグループを宣言することができ

Route::get('/about', '[email protected]')->name('name'); 

たりweb.phpに比べて

Route::namespace('name')->group(function() { 
    Route::get('/about', '[email protected]')->name('name'); 
}); 
+0

うん!私はミドルウェアを使って私のルートを守ることができることを知っています。だから...それは疑問ではない。 '{param}'をすべてのルートからすべてのコントローラに渡すのを避ける必要があります。{{param} 'はURLの接頭辞です。私は私が作成したカスタムミドルウェアにのみプレフィックスが必要で、コントローラ/ビューには必要ありません。 –

+0

2つのグループを作成します。1つのグループにプレフィックスを付け、1つのグループにプレフィックスを付けないでください。 – Eddy05

+0

Ok。しかし、プレフィックスパラメータを渡さないと、アプリケーションはそのパラメータをどのように知ることができますか? –

0

ええと、このように:

Route::get('about-us', '[email protected]')->name('about-us'); 

route('about-us')に電話すると、.../about-usへのURLが生成されます。

+0

しかし、私はまだすべてのルートに接頭引数 '{param}'を渡す必要があります。次に、私の 'route()'関数で '$ param'を使う必要があります。問題は: '$ param'をすべてのビューに対して' route() '関数にどのように設定するかは、' Link 'のように設定していませんか? すべてのルートから '{param} 'を取得してコントローラに渡し、' $ param'をビューに渡すのは良いことではありません。 –

関連する問題