当我使用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()时,脚本将在第一个循环运行后以正确的结果停止运行,并且一切正常。但是,当您在循环中执行回显时,它会继续进行,我的猜测是,在某些时候您传递了一些破坏了该方法的损坏的数据。
我们需要查看代码摘录,您在其中调用上述方法来验证这种预感。