laravel - 只返回查询的值,而不是函数内的“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;
}
firstOrFail
将确保当没有 user_id = $this->id 的记录时,它不会在 null 上抛出访问图像属性的错误,而是在没有找到给定 user_id = $this- 的模型记录时抛出 ModelNotFound 异常>身份证
虽然这有效,但如果没有记录而不是 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-optional
推荐阅读
- c - 在 C 中一起实现管道和重定向
- reactjs - 如何在 onSubmit 事件而不是 onChange 之后更改输入值?
- google-cloud-platform - 本地使用 C# 的 Google PubSub“已超过截止日期”
- javascript - 如何使用 Javascript Regex 按设定顺序匹配子字符串
- python-2.7 - 在Python ctypes中取消引用指向字符串数组的指针
- swift - 多次发送多个通知 (Swift)
- c# - C# 从 Active Directory 获取所有特定用户组
- pointers - 将 GO 指针传递给 C 回调函数
- java - 在 Android 应用程序中的用户之间共享数据
- javascript - Spotify Web API,我做错了什么?