Laravel 5.从现有模型实例查询?

时间:2016-04-19 08:38:38

标签: php laravel

现在我得到一些模型,其中所有属性都被填充,除了一个。

所以我想在数据库中进行搜索,看看是否有一些匹配所有属性值的注册表,在这种情况下,获取最后一个属性值并保留它。

现在我正在做一个查询机智查询构建器,给它所有这样的地方:

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

但是我想知道是否有某种方法来制作像......这样的快捷方式。

$instance->get();

1 个答案:

答案 0 :(得分:1)

是的,您可以通过在模型中定义方法来完成此操作

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

你可以像这样访问它:

$instance->getFiltered();

您不能保留函数名称'get',因为它已经在正在扩展的Model中使用。但是你可以从getFiltered更改为任何未使用的内容。就像模型是User并且函数getFiltered给出用户的注释一样,它可以是注释。