Laravel查询连接使Trying获取非对象的属性

时间:2014-10-25 23:23:25

标签: php laravel laravel-4

我的孩子班

class Child扩展Eloquent { ...     公共职能活动(){         返回$ this-> hasOne('Campaign');     } ... }

这是我在Laravel中的查询:

    $query = Child::query();
    $query->select('children.*');
    $query->join('demands', 'demands.children_id', '=', 'children.id')->where('demands.accepted', '=', '1');
    $children = $query->orderBy(DB::raw('RAND()'))->take(4)->get();

在foreach($ children为$ child)中,我尝试调用echo $ child-> campaign-> name并且我得到了“试图获取非对象的属性”消息。 $ child->名称工作正常!

1 个答案:

答案 0 :(得分:0)

事实证明,并非每个孩子都有与之相关的广告系列。 只需在foreach循环中添加一点检查就可以了。

foreach($children as $child){
    if($child->campaign == null){
        continue;
    }
    // do stuff
}