laravel - 有没有办法在laravel中转换关系表属性?
问题描述
我有一个带有购物车功能的用户模型,它在加入三个表后返回所有购物车详细信息。我想将属性转换为 JSON 类型的数组。
示例:我有四个表users、carts、item_detail_informations和item_details表,其中 item_details 表图片列是 JSON 类型。我想将图片 JSON 数据转换为数组。
我的购物车功能是这样的。
public function carts()
{
return $this->hasMany('App\Models\Cart')
->join('item_detail_informations', 'carts.item_detail_information_id','=','item_detail_informations.id')
->join('item_details', 'item_detail_informations.item_detail_id','=','item_details.id')
->join('items', 'item_details.item_id','=','items.id')
->select('carts.user_id','carts.item_detail_information_id','item_detail_informations.size','item_detail_informations.price','item_detail_informations.item_detail_id', 'item_details.picture','item_details.item_id')
;
}
我正在尝试像这样投射图片属性。
protected $casts = [
'item_details.picture' => 'array',
];
但它不起作用。有没有办法将图片属性转换为JSON?
解决方案
删除购物车方法中的所有连接(而不是通过 with 使用急切加载)。并在 ItemDetail 模型中转换属性。当您调用carst 方法时,它会自动拾取。希望对你有帮助
推荐阅读
- mysql - 如何在续集nodejs中从关联模型中加载没有嵌套对象的属性
- javascript - angular js多文件上传无法使用ngfile上传
- django - 当 proxy_set_header 设置为 $host 时 NGINX 不起作用
- regex - 非捕获组仍在选择元逃生
- java - 给定一组数据,检查它是否是二叉搜索树?
- c# - 剑道网格客户端模板输入隐藏字段单击后变为可编辑
- typo3 - 将变量传递给包含 tx_news 插件的内容对象
- python - 如果满足特定条件,则将字符串与列表列表连接
- heroku - Heroku 不会运行他们的示例 sinatra 应用程序,错误是 bundler: failed to load command: rackup
- docker - 使用 kerberose(GSSAPI)SASL 设置设置 kafka 代理的最佳方法是什么?