Laravel jsonb 列在 javascript 对象中编码为字符串
Posted
技术标签:
【中文标题】Laravel jsonb 列在 javascript 对象中编码为字符串【英文标题】:Laravel jsonb columns encoded as string in javascript object 【发布时间】:2021-01-20 09:04:50 【问题描述】:我的 Laravel API 以这种方式发送 user
数据:
class UserController extends Controller
public function user(Request $request)
return $request->user()->only([
'email',
'foo',
'bar'
]);
当我使用 Nuxt 身份验证模块获取它时,jsonb
列 foo
和 bar
在我的 state.auth.user
对象中被编码为引号中的字符串。
我可以在 Laravel 端修复它吗?如果是,如何?
努克斯特pages/index.js
:
async login()
await this.$auth
.loginWith('laravelPassport',
data:
username: this.email,
password: '1qaz@WSX'
)
.catch((e) =>
console.log(e)
)
【问题讨论】:
【参考方案1】:我终于通过在我的User
模型中将这些列转换为array
来修复它:
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'foo' => 'array',
'bar' => 'array'
];
【讨论】:
以上是关于Laravel jsonb 列在 javascript 对象中编码为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Postgres jsonb '? Laravel 中具有索引支持的运算符?