Laravel如何检索数组中的特定值

时间:2014-05-30 00:26:42

标签: php laravel-4 polymorphism eloquent

我在组织和评级之间存在多态关系。我的评级表设置如下:

id - integer
user_id - integer
score - integer
ratable_type - text
ratable_id - integer

调用$org->ratings将检索一个包含与该特定组织相关联的所有评级的数组。但是,我只想查看是否存在具有特定user_id值的评分。

基本上,我想用user_id = Auth::user()->id检索评分。这是否可能没有遍历所有评级,以查看何时$org->rating->user_id == Auth::user()->id

1 个答案:

答案 0 :(得分:1)

如果您不需要加载关系,那么只需查询数据库:

$org->ratings()->where('user_id', Auth::id())->first();
// returns Rating model or NULL

// in previous versions of the framework (if Auth has no id method)
$org->ratings()->where('user_id', Auth::user()->id)->first();

否则过滤集合:

$org->ratings->first(function ($key, $rating) {
     return $rating->user_id == Auth::id();
});
// like before: Rating model or NULL