微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel DB first()“试图获取非对象的属性”

我使用Laravel的DB first()运行查询,当我使用dd()或vardump()检查时,它返回一个对象.但是当我尝试使用echo($promotion-> pp_name)打印该值时;它给出了错误,但同样的属性显示为dd($promotion-> pp_name);

<?PHP dd($promotion-> pp_name); ?&GT打印“紧急”

<?PHP echo($promotion-> pp_name); ?&GT但它给出了“试图获得非对象的属性

完整对象转储结果:<?PHP dd($promotion); ?&GT

    {#196 ▼
  +"ppo_id": 23
  +"ppo_prj_id": 68
  +"ppo_pp_id": 4
  +"ppo_updated_date": "2014-05-20"
  +"ppo_status": 1
  +"pp_id": 4
  +"pp_name": "urgent"
  +"pp_dispText": "I want my project to be marked as an urgent project"
  +"pp_amount": "5.00"
  +"pp_updated_date": "2013-08-09"
  +"pp_status": 1
}

以及返回此对象的函数.

function getProjectPromotion($value='')
{
    $project_id = $value; 

    $promotion =     DB::table('project_promotion_option')
                    ->join('project_promotion', 'project_promotion_option.ppo_pp_id', '=', 'project_promotion.pp_id')
                    ->where('ppo_prj_id',  '=' ,  $project_id )
                    ->first(); 

    return $promotion; 

}

解决方法:

你是在循环中调用这个方法吗?执行dd()时,脚本会在第一次循环运行后以正确的结果停止,并且一切正常.但是当你在循环中回显时,它会继续,我的猜测是,在某些时候你会传递一些破坏了该方法的损坏数据.

我们需要查看代码摘录,您要调用上述方法来验证此预感.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐