我正在编写函数来搜索多个表中的多个列,例如用户表和产品表,这是我正在尝试的方式
Route::post ( '/search', function () {
$q = Input::get ( 'q' );
$user = DB::table('users')->where ( 'name', 'LIKE', '%' . $q . '%' )->orWhere ( 'email', 'LIKE', '%' . $q . '%' )->get ();
if (count ( $user ) > 0)
return view ( 'welcome' )->withDetails ( $user )->withQuery ( $q );
else
return view ( 'welcome' )->withMessage ( 'No Details found. Try to search again !' );
这仅用于选择多个列,但只有一个表是用户表,但我有另一个表是产品表,而product_name列就在那里。所以我想将它包含在搜索查询中。我应该使用哪种方法,聚合方法或联合方法?我尝试了一些可能的方法,但还没有运气。请指导我。谢谢。
答案 0 :(得分:0)
这是件事。 (我假设了一些要点,因为你有id为1的用户和id为1的产品)
1)联盟方法:
$users= \App\User::FindOrFail(1);
$productsWithUsers = \App\Products::where(['id'=>1])->union($table1)->get();
现在$ productsWithUsers拥有User和Product
中的所有列