我想查询一个模型以在满足特定条件时返回结果,如果不包含where子句,我会得到结果,但是一旦包含where子句,我就会得到一个空数组,我检查了所有值并且它们存在于数据库
模型UserProductListMap
class UserProductListMap extends UuidModel
{
protected $table = 'user_product_list_map';
public function product()
{
return $this->belongsTo('App\Models\UserProduct', 'product_id', 'uuid');
}
public function lists()
{
return $this->hasMany('App\Models\UserShoppingList', 'shopping_list_id', 'uuid');
}
}
存储库
public function getUserListMappings($listId, $userId)
{
try {
$produc = Models::with('lists')->where('uuid',$listId);
$data =[];
foreach ($produc as $products) {
$data = $products;
}
return $data;
//$result = $this->getModel()->first();
//$result = $result->product->name;
} catch (QueryException $exception) {
throw new ResourceGetError('Product');
} catch (\PDOException $exception) {
throw new ResourceGetError('Product');
}
}
我想从usershoppinglistmap获得结果,其中shopping_list_id = $ listId,而user_id = $ userId
答案 0 :(得分:1)
您错过了->get()
尝试如下更新代码:
public function getUserListMappings($listId, $userId)
{
try {
// add the missing ->get()
$produc = Models::with('lists')->where('uuid',$listId)->get();
$data =[];
foreach ($produc as $products) {
$data = $products;
}
return $data;
//$result = $this->getModel()->first();
//$result = $result->product->name;
} catch (QueryException $exception) {
throw new ResourceGetError('Product');
} catch (\PDOException $exception) {
throw new ResourceGetError('Product');
}
}