我想与Eloquent(在Laravel中)提出这个要求:
$user = User::find(1);
$product = $user->products()->where('id', 1)->first();
但是列ID在表用户和表产品中,所以我有一个错误(列不明确)。我想在没有set"产品的情况下使用它"在代码中很难(因为表名最终可能会改变......)。
如何解决这个问题?
答案 0 :(得分:1)
在这种情况下,您可以使用以下内容:
$id = 1;
$user = User::with(array('products' => function($q) use($id){
// You may use this
$table = $q->getRelated()->getTable();
$q->where("{$table}.id", $id);
// Or if this is a primary Key then you mau use this
$q->where($q->getRelated()->getQualifiedKeyName(), $id);
}))->find($id);
// Get the first product
$product = $user->products->first();
答案 1 :(得分:0)
您必须动态获取表名。有关详细信息,请参阅this question。