我正试图通过Laravel Eloquent中的一条语句返回给定行的“ id”。我希望查询返回1或与该查询相关联的任何其他整数,但是它不起作用。相反,它返回的是“缩写”字段。
public function getIdByAbbreviation($string)
{
return $this->model->where('abbreviation', 'like', '%'.$string.'%')
->pluck('id')->first();
}
答案 0 :(得分:1)
拔除会返回一个数组,因此您无法在该数组上调用first
。试试这个:
return optional($this->model->where('abbreviation', 'like', "%$string%")->first())->id;
请注意,first
可能会返回null
,因此在尝试获取id
之前应先进行空检查。
或者如@DeesOomens建议将其包装为可选内容。
答案 1 :(得分:0)
您需要->get()
查询的所有结果,然后->pluck()
才能使用值:
public function getIdByAbbreviation($string)
{
return $this->model->where('abbreviation', 'like', '%'.$string.'%')
->get()
->pluck('id')
->all();
}