gpt4 book ai didi

php - Laravel (eloquent) 访问器 : Calculate only once

转载 作者:行者123 更新时间:2023-12-03 17:21:58 24 4
gpt4 key购买 nike

我有一个 Laravel 模型,它有一个计算访问器:

模型作业有一些与用户相关联的作业应用程序。
我想知道用户是否已经申请了工作。

为此,我创建了一个访问器 user_applied得到 applications与当前用户的关系。这可以正常工作,但是每次访问该字段时都会计算访问器(进行查询)。

有没有什么简单的方法可以只计算访问器一次

/**
* Whether the user applied for this job or not.
*
* @return bool
*/
public function getUserAppliedAttribute()
{
if (!Auth::check()) {
return false;
}

return $this->applications()->where('user_id', Auth::user()->id)->exists();
}

提前致谢。

最佳答案

正如评论中所建议的,真的一点都不棘手

 protected $userApplied=false;
/**
* Whether the user applied for this job or not.
*
* @return bool
*/
public function getUserAppliedAttribute()
{
if (!Auth::check()) {
return false;
}

if($this->userApplied){
return $this->userApplied;
}else{
$this->userApplied = $this->applications()->where('user_id', Auth::user()->id)->exists();

return $this->userApplied;
}

}

关于php - Laravel (eloquent) 访问器 : Calculate only once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35507562/

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