只返回查询的值,而不是函数内的"column":"value"键对



我的用户模型中有这个函数:

public function adminlte_image()
{
return Employee::where('user_id',$this->id)->get('image');
}

哪个返回:

[
{"image":"Base64 String"}
]

但我想要的只是返回该列的值,而不是json,因为该函数是在img src=中调用的

<img src="Base64 String" class="user-image img-circle elevation-2" alt="Mathias Oliveira">

以下是当前代码的样子:

<img src="[{"image":"Base64 String"}]" class="user-image img-circle elevation-2" alt="Mathias Oliveira">

我无法编辑html或函数的调用方式,只能编辑函数本身。

尝试

public function adminlte_image()
{
return Employee::where('user_id',$this->id)->firstOrFail()->image;
}

CCD_ 1将确保当没有user_id=$this->id,则它不会在null上引发访问image属性的错误,而是在未找到给定user_id=$this->的模型记录时引发ModelNotFound异常;id

如果没有记录而不是ModelNotFound异常,有什么方法可以返回null吗?


public function adminlte_image()
{
$emp = Employee::where('user_id',$this->id)->first();
return $emp ? $emp->image : null;
//OR using optional helper
return optional(Employee::where('user_id', $this->id)->first())->image;
}

Laravel文档:https://laravel.com/docs/8.x/helpers#method-可选

最新更新