我想知道是否有任何方法或方法将查询发布到不同的控制器(或函数),即来自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']) !!}
请建议我一些方法。提前致谢
答案 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', [])
}
}
我认为无法处理多条路线的请求。如果你想这样做,你应该用一条路线捕获请求。然后在控制器中,您可以调用其他每个处理程序方法。