2017-11-05 13 views
0

可能であれば、これが行われますか?私は簡単にIDのみを使用して2つの変数を持つ出力ルートURL

route('section.category.subcategory',[ 
            'subcategory_slug' => $subcategory->slug, 
            'parent_slug'=>$parent->slug 
            ] 
); 

を行うことができますが、私はしようとしているLaravel 5.5

route('section.category.subcategory',$subcategory->id) 

を出力しなければならない(ルート/ web.phpは、get ::あまりにもこのように設定している)

/section/{parent_slug}/{subcategory_slug} 

常にそれらのことを宣言する必要はありません。

私はモデルのgetRouteKeyNameが最初に行くと思っていましたが、それは私が見つけることができる限り1つの変数にのみバインドします。

RouteHandlerは、URLを読み取って正しく出力しないために何かを行う場所ではありませんか?

私はこの種のロジックを設定する必要があると私は知らないいくつかのファイルを想定しています。さらに良い

if(requested_route is section.category.subcategory)){ 
    // get the parent_id of ID provided, 
    // get parent's slug 
    // build the url. 
} 

、私は、サブカテゴリのリストを引っ張ったときに、左が参加行うことができると思うので、私が代わりに$ parent->スラグのために行くの$ subcategory-> parent_slugを持っています。このようにして、

route('section.category.subcategory',[$subcategory]) 

には、必要なすべての変数があります。

答えて

1

私はあなたがこのようなURLを作成することができますので、このヘルパーは良い選択となるためだと思う:

route('section.category.subcategory',build_category_parameters($subcategory)) 

、あなたはこのような関数を作成することができます:あなたが持っていない場合は

function build_category_parameters($subcategory) 
{ 
    // here any logic that is needed 

    // here return array something like this 
    return [ 'subcategory_slug' => $subcategory->slug, 
      'parent_slug'=> $subcategory->parent->slug 
      ]; 
} 

ヘルパーファイルはすでにこの方法で作成できますLaravel - require php script in a service provider

関連する問題