我正在编写函数来从许多表(例如用户表和产品表)中搜索多个列,这就是我正在尝试的方法
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列。所以我想将它包含在搜索查询中。我应该使用哪种方法,聚合方法还是联合方法?我尝试了一些可能的方法,但还没有运气。请指导我。谢谢。
最佳答案
这是一些东西。 (我假设了一些点,因为您有 id 为 1 的用户和 id 为 1 的产品)
1)联合方法:
$users= \App\User::FindOrFail(1);
$productsWithUsers = \App\Products::where(['id'=>1])->union($table1)->get();
现在 $productsWithUsers 拥有用户和产品的所有列
关于php - 如何在 Laravel 的单个查询中从多个表中选择多个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46571142/