如何在Laravel 5.4中向不同的控制器发布查询?

时间:2017-09-06 06:05:12

标签: php laravel

我想知道是否有任何方法或方法将查询发布到不同的控制器(或函数),即来自laravel形式的2个或更多。我正在使用Laravel 5.4,我想从多个表中提取数据(在我的情况下为3),然后将视图返回到页面上的不同页面或不同的药片/标签。

我的控制器如下:

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', 'QueriesController@search');

Route::post('/search', 'QueriesController@query');

我的表格如下:

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

请建议我一些方法。提前致谢

1 个答案:

答案 0 :(得分:0)

如果我理解正确:

路线:

Route::post('/search', 'QueriesController@handleSearch');

控制器:

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', [])
    }

}

我认为无法处理多条路线的请求。如果你想这样做,你应该用一条路线捕获请求。然后在控制器中,您可以调用其他每个处理程序方法。