【问题标题】:Laravel query join gives Trying to get property of non-objectLaravel 查询连接给出 Trying to get property of non-object
【发布时间】:2014-12-21 11:50:46
【问题描述】:

我的孩子班

class Child 扩展 Eloquent { ... 公共功能活动(){ return $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 as $child) 中,我尝试调用 echo $child->campaign->name 并收到“尝试获取非对象的属性”消息。 $child->name 工作正常!

【问题讨论】:

  • 您的数据库中是否有没有活动的孩子?
  • 请接受我的回答,以便浏览问题列表的每个人都可以看到此问题已解决。谢谢。
  • 你检查 $children 变量是数组还是对象?如果是 Array 则使用 $array->$key;如果是Object而不是usr $object->$key;
  • 试试 echo @$child->campaign->name

标签: php laravel laravel-4


【解决方案1】:

事实证明,并不是每个孩子都有与之相关的活动。 只需在你的 foreach 循环中添加一点检查就可以了

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多