2015-01-19 3 views
7

Я добавил пользовательский атрибут моей моделикрасноречив поиск/где на пользовательские атрибуты

public function getTouchedAttribute() { ... 

Я хотел бы добавить это к запросу

hasMany()->where('touched', ...) 

но, очевидно, это не столбец стол.

Что является самым элегантным способом достижения такого поведения?

ответ

6

Одним из вариантов (и, вероятно, лучшего в плане производительности) является имитация атрибута с помощью необработанных SQL-функций. (Не могу помочь вам с этим, потому что я не знаю, что делает touched)

Другой способ заключается в использовании filter на результирующей коллекции:

$collection = Model::all(); 
$filtered = $collection->filter(function($model){ 
    return $model->touched == true; 
}); 
+0

Добра. Это хорошо. Если бы это был простой sql-запрос, я бы сделал это таким образом, но это объединение нескольких запросов и некоторых других переменных. – NiRR

Смежные вопросы