我有两张桌子:
products: id, name, manufacturer
myproducts:id, user_id, product_id
我通过我的身份验证令牌知道user_id。使用此user_id标记,希望从myproducts获取product_id和id,然后查询products表以获取product产品中product_id与mymproducts中的id匹配的名称和制造商。目标是为用户提供可编辑的列表,他/她可以在myproducts表中进行编辑。
到目前为止,我只能做
$productlist = DB:table('myproducts')->where('user_id', $userid)->get();
这将返回用户拥有的所有产品。但是我无法加入表格以返回用户拥有的每个产品的产品数据。
有什么建议吗?
伪代码:
Select * from myproducts wheer user_id = $userid
每个产品- >获取id等于product_id的产品名称和制造商
答案 0 :(得分:3)
您可以使用DB :: table查询执行此操作,但在Laravel中执行此操作的最佳方法是使用Eloquent关系。
为两个表创建Model,然后使用模型定义表之间的关系。
完成后,获取用户拥有的产品的产品数据就像这样简单:
$productData = User::find(1)->product;
我强烈建议您观看有关设置Eloquent关系的本教程,它解释得非常好:
答案 1 :(得分:2)
$all_products = \DB::table('myproducts')
->leftjoin('products', 'products.id', '=','myproducts.id')
->where('myproducts.user_id','=',\Auth::user()->id)
->WhereNull('products.deleted_at')
->get();