2016-07-01 16 views
1

Laravel 5.1でいくつかの計算を解決するには1つの問題があり、今まで最高の解決策は2つの異なるコントローラーを作成して特定のアイテムの計算を処理する方法です。2つのコントローラーと1つのLaravelでの表示

すべての項目の

そして1

Route::get('company/convert/{note}','[email protected]'); 

Route::get('company/convert','[email protected]'); 

はどちらも同じビューをレンダリングに使用します。

私の質問です:これを行うには良い練習ですか?

私の頭では、1つのルートだけを使用して、特定のノートを1つ受け取るか、またはリクエストを通じていくつかの変数ですべてのものを受け取ることができます。以下のような 何か:

$ http.get( '/会社/変換/'、データ)dataが変換されます1またはすべてのノートを受け取ることになります

P .:私はAngularJSを使用してこのルートを呼び出しています。

答えて

2

あなたがあなたのルートビットを変更する必要があり、あなたのコントローラ内の1つの方法はある好む場合:

Route::get('company/convert/{note?}','[email protected]'); 

をそして、あなたの方法は方法NoteConvertこの方法

public function NoteConvert($note=null) 
{ 
    if ($note == null) { 
     // do all convertions 
     return view() 
    } 
    // single convertion 
    ... 
} 

ようなものになるだろう複数の変換と単一の変換を処理するものになります。 ​​

+0

Route::get('company/convert','[email protected]'); 

を削除することを忘れないでくださいそれはもう編集

必要ではないのだろうか?オプションのパラメータを表しています、そうですか?もしそうなら、これはきちんとした解決策だと思っています。 – ggderas

+0

はい、あなたはdocsを見て、あなたは別のルーティングオプションを見ることができますか?オプションのパラメータの場合 –

+0

私はこのアプローチを使用してくれました。助けてくれてありがとうo // –

1

私にとって最良の方法は、URLにオプションのパラメータを入力してコントローラで確認することです。

0

あなたの仕事は、ビュー内のノート引数を使用して、すべてのアイテムと特定のデータのデータをフィルタで生成することだと思います。

私は、ここにこの

public function getIndex() 
      { 
      return view('convert'); 

     } 

ように二つの機能を備えたコントローラを作成し、この

Route::controller('company', 'ScenarioController'); 

のようなルートを作成することをreccomendは、名前のビューブレードで変換します。

public function postFilter($note) 
     { 
     $x= // do what you want 
     return view('convert', compact('x'));  
     } 

次にチェックボックスを使用してブレードにフィルタを追加して 「会社/フィルタ/ {音符}」とフォームアクションURLを作ります。

これは私が考えるより良い方法です。

ここでは暗黙のルーティングを示します。 https://laravel.com/docs/5.1/controllers

関連する問題