来自Eloquent集合的Elasticquent调用searchByQuery

时间:2015-12-29 10:37:46

标签: laravel elasticsearch

是否可以从Eloquent集合中调用Laravel中的searchByQuery方法,例如:

Table1::with('table2')->searchByQuery()

如果我这样称呼我会收到错误:

  

调用未定义的方法   照亮\数据库\查询\生成器:: searchByQuery()

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以创建scope documentation

例如,在模型中创建方法

public function scopeSearchByQuery($query)
{
    return $query->where('something', '=', true);
}

然后,您可以在模型中调用此方法,例如Model::searchByQuery()

如果您需要将其他参数传递给此方法,您可以定义它

public function scopeSearchByQuery($query, $something = '')
{
    return $query->where('something', '=', $something);
}

并将其称为Model::searchByQuery('test')

编辑:我没有意识到您询问弹性搜索包

Elasticquent docs

要调用此方法searchByQuery,您需要在模型中添加特征

use Elasticquent\ElasticquentTrait;

class YourModel extends Eloquent {

    use ElasticquentTrait;

}