Я работаю в Laravel 5. Моя ситуация следующая: У меня есть таблица ПОЛЬЗОВАТЕЛЕЙ и столом ПРОФИЛИ Имеют отношение 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. , например. Пользователи :: с («профиль») - это по крайней мере доставит вас куда-нибудь. Я не совсем понимаю, чего вы пытаетесь достичь с помощью части -> identity_doc. Не могли бы вы объяснить больше, пожалуйста? – Octo
уверен, дело в том, что у меня есть таблица в представлении, и там я показываю некоторые данные профиля пользователя, такие как имя, идентификационный документ, номер телефона и т. Д. Но у меня есть _входной текст_, где пользователь может ввести некоторую ценность и найти регистры, которые совпадают, он может найти номер паспорта или удостоверения личности. а затем с этим _data_ Я пытаюсь отфильтровать регистры и показать результат пользователю –