gpt4 book ai didi

laravel - 使用 $append 属性进行 Eloquent Eager Loading

转载 作者:行者123 更新时间:2023-12-01 06:02:12 24 4
gpt4 key购买 nike

我有点被困在这里,不知道如何推进这个。

我有两个型号:用户 child 他们在 关系 .

(请记住,这只是说明问题)

class Child extends Model{

protected $primaryKey = 'id_child';

public $appends = ['is_alive'];

public function user(){

return $this->belongsTo('Models\User','id_user');

}

public function getIsAliveAttribute(){

if (!is_null($this->lifetime_updated_at))
return (Carbon::parse($this->lifetime_updated_at)->addMinute($this->lifetime) >= Carbon::now());
else
return false;
}
}

class User extends Model{

protected $primaryKey = 'id_user';

public $appends = ['is_alive'];

public function childs(){

return $this->hasMany('Models\Child','id_user');
}

public function getIsAliveAttribute(){

if (!is_null($this->lifetime_updated_at))
return (Carbon::parse($this->lifetime_updated_at)->addMinute($this->lifetime) >= Carbon::now());
else
return false;
}

}

现在我想用 热切加载 在 Controller 中从用户检索我的 child 数据。

但是我的用户模型对象来自我的应用程序中的中间件。所以我只有用户模型对象可以使用,我不想使用“with()”再次查询用户。
$user = User::where('name','DoctorWho')->first();

return user->childs()->find(3);

此操作返回的内容:
    {
"id_child": 3,
"name": "JayZ",
"last_name": "Etc",
"lifetime": 1,
"lifetime_updated_at": null,
"created_at": "2017-05-29 21:40:02",
"updated_at": "2017-05-29 21:40:02",
"active": 1
}

我需要什么(附加属性)
{
"id_child": 3,
"name": "JayZ",
"last_name": "Etc",
"lifetime": 1,
"lifetime_updated_at": null,
"created_at": "2017-05-29 21:40:02",
"updated_at": "2017-05-29 21:40:02",
"active": 1,
"is_alive": true
}

甚至可以使用 检索子数据附加属性 使用 Eager Loading ?

备注:这个用户对象来自一个中间件,我必须使用用户模型对象来获取其带有附加属性的子对象。

提前致谢,
洛斯洛沃斯

最佳答案

问题是我做错了一些与 Eloquent 访问模型无关的错误,就像附加属性一样!

关于laravel - 使用 $append 属性进行 Eloquent Eager Loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44347228/

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