Я пытаюсь сделать запрос, который фильтрует по 2 столбцам на одной таблице ИЛИ 2 столбца на другой. Это то, что я до сих пор:Laravel orWhere или другая модель
// In my controller
return $registry = Registry::search($first_name, $last_name)->get();
// In my model
public function user()
{
return $this->belongsTo('User');
}
public function scopeSearch($query, $first_name, $last_name)
{
$search = $query->where('coregistrant_first_name', 'LIKE', "%$first_name%")
->where('coregistrant_last_name', 'LIKE', "%$last_name%")
->orWhere(function($query) use ($first_name, $last_name)
{
$query->$this->user()->where('first_name', 'LIKE', "%$first_name%");
});
return $search;
}
Я пробовал много разных вещей, и теперь я застрял на $query->$this->user()
линии с этой ошибкой:
Undefined property: Illuminate\Database\Query\Builder::$[]
Каждый знает, как я могу это исправить Эта проблема?
'$ query -> $ this' Сначала я думаю, что это ваша проблема? Разве это не '$ query-> this-> user()'? Поскольку в настоящее время он написан, вы ищете переменную-член с именем любого строкового значения, которое хранится в глобальной переменной $ this. – echochamber
Теперь у меня есть эта ошибка - Неопределенное свойство: Illuminate \ Database \ Query \ Builder :: $ this – Keith
Вы используете php 5.4 или больше? – user1669496