我总是用var_dump
调试代码,而且我经常这样做。
到目前为止,我已经使用了大约一个月的laravel,从第一天开始,我就遇到了一个非常烦人的情况,无限递归使我重新启动了我的计算机。
我仍然不知道是什么原因造成的,但可能是雄辩的收藏。最后一条让我写这个问题的代码是:
模范申请人.php
public function resumes(){
return $this->hasMany('\MyApp\Resume');
}
我将
var_dump
保存到一个会话中,在一个视图中:var_dump(Session::get('applicant')->resumes());
我知道正确的方法是
$applicant
,因为它是一个属性而不是一个方法,但是我很好奇为什么这会使我的ubuntu崩溃,内存不足,迫使我重新启动。有没有办法配置Artisan来防止这种情况发生?为什么会这样?啊!
@编辑
当我做类似的事情而不
->resumes
时,同样的问题也会发生。var_dump(Model::where('field',$val));
最佳答案
可以尝试将模型密钥保存到会话而不是模型吗?
Session::put('applicant_id',$applicant->getKey());
那么什么时候取回它
public function getApplicantFromSession() {
static $applicant;
if(is_null($applicant)) {
$applicant = Applicant::find(Session::get('applicant_id'));
}
return $applicant;
}
然后,为了得到简历,我会使用:
public function getApplicantResumes() {
$applicant = $this->getApplicantFromSession();
if(!is_null($applicant)) {
return $applicant->resumes;
}
return collect([]);
}