2017-09-06 12 views
0

異なるコントローラ(または関数)にクエリを投稿する方法や方法があるかどうか、つまりラーベルフォームから2つ以上のクエリが投稿されるかどうかは疑問でした。私はLaravel 5.4を使用しています。私は複数のテーブル(私の場合は3)からデータを抽出し、別のページまたは別のピル/ページのタブにビューを戻したいと考えています。Laravel 5.4の異なるコントローラにクエリを投稿する方法は?

私のコントローラは次のようになります。

class QueriesController extends Controller 
{ 
    public function search(Request $search){ 
     $data = $search->data; 
     $tables= DB::table('tablename1')->where('column', "$data")->get(); 
     return view('/page1', compact('tables')); 
    } 
    public function query(Request $query){ 
     $tdata= $query->data; 
     $tables= DB::table('tablename2')->where('column', "$tdata")->get(); 
     return view('/page2', compact('tables')); 
    } 
} 

私のルートは、次のようになります。

Route::post('/query', '[email protected]'); 

Route::post('/search', '[email protected]'); 

私のフォームは次のようになる:

{!! Form::open(['url' => 'search']) !!} 

私にいくつかの方法を提案してください。事前のおかげで

+0

すべての設定されたルートで投稿されたリクエストを毎回処理したいですか?または一度に1つだけですか? –

+0

それが動作すれば、私は必要な変更を加えることができます。 –

+0

このリンクをチェックする - https://stackoverflow.com/questions/10955097/how-can-i-post-to-multiple-urls-at-the-same-time –

答えて

0

私が正しく理解している場合:

ルートを:

Route::post('/search', '[email protected]'); 

コントローラー:

class QueriesController extends Controller 
{ 
    public function handlSearch(Request $request) { 
     $tabs = []; 

     $tabs[] = $this->search($request); 
     $tabs[] = $this->query($requst); 

     return \View::make('path.to.your.view', [ 
      'tabs' => $tabs 
     ]) 
    } 


    protected function search(Request $search) 
    { 
     // Your stuff 

     return \View::make('path.to.tab.part', []) 
    } 

    protected function query(Request $query) 
    { 
     // Your stuff 

     return \View::make('path.to.tab.part', []) 
    } 

} 

は、私は複数を持つ要求を処理するための方法はありませんを考えますルート。これを行うには、1つのルートでリクエストをキャッチする必要があります。コントローラでは、他のすべてのハンドラメソッドを呼び出すことができます。

+0

あなたのポイントを得ました。このハンドラを使用すると、テーブルデータを同時にスローすることはできますか? –

+0

あなたはハンドラから返されたビューをjQueryのタブ/ピルに塗りつぶすのですか? –

+0

私はブートストラップタブ/丸薬を使用しています。各タブ/丸薬で、私はリターンデータをキャッチしたい。 –

関連する問題