1
我在Laravel 5.工作我的情況是下一個:我有一個表USERS和一張桌子PROFILES的有關係1:1。所以,我在模型用戶一個名爲輪廓像這樣的方法:錯誤試圖讓非對象的屬性在Laravel 5關係和範圍
public function profile(){
return $this->belongsTo('App\models\Profile','profile_id');
}
另外我有一個方法scopeData在這裏我要過濾哪些用戶有identity_doc等於爲數據:
public function scopeData($query,$data){
$profile=$this->profile;
$query->where($profile->identity_doc,$data);
}
在我使用範圍功能在這條線的用戶控制器
:
$students= Users::data($request->get('data'))->where('rol','=','Student')->get();
但是,當我運行它時,我有這個錯誤:試圖獲得非對象的屬性 所以,爲什麼會發生?輪廓方法在其他功能工作正常,但沒有在這裏,我得到:
**array('query' => object(Builder), 'data' => 'example', 'profile' => null))**
好吧,我明白了,我雖然一樣,但我不確定。謝謝你,兄弟!那麼,是否存在處理這種情況的方法?我如何使用範圍內的關係? –
好好加載可能是您解決方案的一部分:http://laravel.com/docs/5.0/eloquent#eager-loading。 例如Users :: with('profile') - 至少可以讓你在某個地方。我並不完全清楚你想用 - > identity_doc部分實現的目標。你能解釋更多嗎? – Octo
當然,問題是我在視圖中有一張桌子,並且在那裏顯示了用戶個人資料的一些數據,如姓名,身份證件,電話號碼等。但是我有一個_input text_,用戶可以在其中引入一些價值並找到重合的寄存器,他可以找到護照或身份證號碼。然後用那個_data_我試圖過濾寄存器,並向用戶顯示結果 –