以下描述的是我的Post
模型中的吸气剂:
public function getTicketIdAttribute() {
return str_pad($this->id, 6, '0', STR_PAD_LEFT);
}
请注意,该功能只需在Post
post_id
的前面添加6个零填充。
现在,是否可以在查询构建器中使用它?我尝试过以下几点:
Post::where(function($query) use ($keyword) {
$query->where('detail', 'LIKE', '%'. $keyword .'%')
->orWhereHas($query->getTicketIdAttribute(), 'LIKE', '%'. $keyword .'%');
});
我尝试做的是设置一个搜索引擎,查找Post
对象如果:
$keyword
与Post
' s detail
或
$keyword
与getTicketIdAttribute()
答案 0 :(得分:0)
正如Jonas Staudenmeir所指出的,我需要使用PHP的LPAD()
重写代码,所以:
LPAD(id, 6, '0')
并在查询生成器中使用它我需要使用DB::raw
方法应用它,因为框中没有可用的等效LPAD()
方法。所以,像这样使用它:
DB::raw("LPAD(id, 6, '0')")
请注意,这意味着在这种情况下,模型的getter属性不能直接在Query Builder中使用,因此需要以这种方式应用它。
希望这有助于其他人,我感谢Jonas Staudenmeir寻求帮助。