是否可以从Eloquent集合中调用Laravel中的searchByQuery方法,例如:
Table1::with('table2')->searchByQuery()
如果我这样称呼我会收到错误:
调用未定义的方法 照亮\数据库\查询\生成器:: searchByQuery()
还有其他办法吗?
答案 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')
编辑:我没有意识到您询问弹性搜索包。
要调用此方法searchByQuery
,您需要在模型中添加特征
use Elasticquent\ElasticquentTrait;
class YourModel extends Eloquent {
use ElasticquentTrait;
}