gpt4 book ai didi

php - Laravel Eloquent ORM 返回 stdClass 而不是 Model 实例

转载 作者:行者123 更新时间:2023-12-05 02:11:04 25 4
gpt4 key购买 nike

当我使用 eloquent 查询数据时,它返回 stdClass 对象而不是使用 get() 函数时我的模型的实例。

$userFind = User::find(1)
$userGet = DB::table('users')
->where('users.id','=', 1)
->select('users.*')->get()[0]

echo get_class($userFind) // -> App\User
echo get_class($userGet) // -> stdClass

Laravel Eloquent ORM returnig stdClass instead of actual Model报告了同样的问题,但这是一个老话题,解决方案只是回到以前版本的 Laravel。

最佳答案

这是因为您使用了 \DB::table('users') ,它独立于您的模型和代码结构。这就像直接在数据库上运行查询,laravel 无法知道结果是一个完整的 User 及其所有字段。

使用

$userGet = \App\User::query()
->where('id','=', 1)
->get()[0]
echo get_class($userGet) // -> App\User

//or simply
$userGet = \App\User::query()
->where('id','=', 1)
->first()
echo get_class($userGet) // -> App\User

关于php - Laravel Eloquent ORM 返回 stdClass 而不是 Model 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57977247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com