2016-08-24 113 views
3

無限遞歸我總是調試我用var_dump的代碼,我做var_dump -ing經常。上Laravel的工匠

我一直在使用Laravel約一個月,到目前爲止,因爲第一天我在與無限遞歸一個惱人的情況,這讓我重新啓動計算機。

我仍然不確定是什麼導致了這一點,但可能是雄辯的集合。這讓我寫這個問題的最後一段代碼是:

模型Applicant.php

public function resumes(){ 
     return $this->hasMany('\MyApp\Resume'); 
} 

我救$applicant的會話,並在視圖中我所做的:

var_dump(Session::get('applicant')->resumes()); 

我知道正確的方法是->resumes,因爲它是一個屬性而不是方法,但我很想知道爲什麼這會使我的Ubuntu崩潰,出現內存不足,迫使我重新啓動。

是否有配置工匠,以防止這種情況發生的方法嗎?爲什麼會發生?!

@edit

,當我這樣做沒有->get()->all()

var_dump(Model::where('field',$val)); 

回答

1

你可以嘗試保存模型關鍵會議,而不是模型同樣的問題發生?

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([]); 
}