我总是用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([]);
}

09-08 11:11