当我使用first()dd()检查时,我使用Laravel的DB vardump()运行查询,该查询返回一个对象。但是当我尝试使用echo ($promotion->pp_name);打印值时,它给出了错误,但dd($promotion->pp_name);却显示相同的属性
<?php dd($promotion->pp_name); ?>打印“紧急”
<?php echo ($promotion->pp_name); ?>,但给出“试图获取非对象的属性”

完整对象转储结果:<?php dd($promotion); ?>

    {#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()时,脚本将在第一个循环运行后以正确的结果停止运行,并且一切正常。但是,当您在循环中执行回显时,它会继续进行,我的猜测是,在某些时候您传递了一些破坏了该方法的损坏的数据。

我们需要查看代码摘录,您在其中调用上述方法来验证这种预感。

10-05 22:28