2016-04-19 2 views
0

Теперь я получаю некоторую модель со всеми заполненными свойствами, кроме одного.Laravel 5. Запрос из существующего экземпляра модели?

Поэтому я хочу выполнить поиск в базе данных и посмотреть, есть ли какой-либо реестр, который соответствует всем значениям свойств, и в этом случае получить последнее значение свойства и сохранить его.

Теперь им делать остроумие запросов построитель запросов, давая все, где, как это:

$query->Model::select()->where(field, $instance->field); 
$query->where(field2, $instance->field2); 
... 
$query->get(); 

Но я хочу знать, есть ли какой-нибудь способ сделать ярлык, как ...

$instance->get(); 
+2

Просьба ознакомиться с документацией «Яркий». Все, что вам нужно, есть, в том числе примеры и распространенные случаи использования. https://laravel.com/docs/5.2/eloquent –

ответ

1

Да, вы можете сделать это, определив метод в вашей модели, как этот

class YourModel extends Model 
{ 
    public function getFiltered() 
    { 
    return Model::where('field1',$this->field1)->where('field2',$this->field2)->get(); 
    } 
} 

И вы можете получить доступ к нему, как это:

$instance->getFiltered(); 

Вы не можете сохранить имя функции 'get', потому что оно уже используется в модели, которая расширяется. Но вы можете перейти от getFiltered ко всему, что не используется. Например, если модель была пользователем, а функция getFiltered дает комментарии пользователя, то это могут быть комментарии.

+0

Ницца, извините за то, что вы долго отвечаете. Очень чистый, вот что я искал. Спасибо :) – Sampudon

+0

Выполнено. Еще раз спасибо :) – Sampudon

+0

@Sampudon Нет проблем. –

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