2017-06-28 13 views
1

私はLaravelルートにSymfonyルートを書き直そうとしています。問題は、Symfonyのいくつかのルートがdefaultsと同じコントローラになるということです。同じことを達成するためにLaravelルートにいくつかの引数を追加できますか?静的変数をLaravelルートに渡す方法は?

symfonyのYAML

path: /account/ 
    defaults: 
     _controller: "legacy.controller.fallback:Somefunt" 
     pag_act: "secret" 
     m_act: "home" 

path: /account2/ 
     defaults: 
      _controller: "legacy.controller.fallback:Somefunt" 
      pag_act: "public" 
      m_act: "home" 

例えばlaravel

Route::any('/account', '[email protected]'); 

あなたが見ることができるようにこれらの2つのsymfonyのルートのデフォルトは(pag_act)異なっている、私はあまりにもLaravelでこれを渡すことができますか?場合secretFunt()

public function secretFunt() 
{ 
    $pag_act = 'secret'; 
    $m_act = 'home'; 
} 

public function publicFunt() 
{ 
    $pag_act = 'public'; 
    $m_act = 'home'; 
} 

publicFunt()と同じことが、唯一の$pag_actの値は次のとおりです。

答えて

1
Route::any('/account', '[email protected]') 
     ->defaults('pag_act', 'secret'); 

Route::any('/account2', '[email protected]') 
     ->defaults('pag_act', 'public'); 

とあなたのSomeSymfonyController Somefunt方法

public function Somefunt(Request $request) 
{ 
    dd($request->route('pag_act')); // Returns 'secret' or 'public' based on route 
} 
+1

ありがとう、これをテストし、おそらく私が必要なものです! –

1

単にあなたがこれを言うことができ、あなたのSomeSymfonyControllerで別のRoute::

Route::any('/account', '[email protected]'); 
Route::any('/account2', '[email protected]'); 

を作成異なる:この$pag_act変数を処理するたびに、重複したコンテンツは望ましくありません。 。はい、問題はコントローラで同じ機能を使用したいとありますが、この

public function funtHandler($act) 
{ 
    $pag_act = $act; 
    $m_act = 'home'; 
} 

public function secretFunt() 
{ 
    $pag_act = 'secret'; 
    $this->funtHandler($pag_act); 
} 

public function publicFunt() 
{ 
    $pag_act = 'public'; 
    $this->funtHandler($pag_act); 
} 
+0

中:だから我々はそのための関数を作成することができます働くでしょう。どうして?それはsymfonyとまだ共有されているからです。 –

+0

申し訳ありませんが、私の答えを編集した、1つの事を忘れた –

関連する問題