首页 > 解决方案 > 为 Laravel 模型添加属性

问题描述

我有用户模型,我想添加这个用户是否合格,我有一些查询来确定,

用户.php

....

     public function getIsQualifiedAttribute($value)
     {
            return $this->qualified()->first() ? true : false;
     }
    
     public function scopeQualified($query)
     {
            return $query->where("years_of_experience",">=",5);
     }

这就是我想要打印的方式

{{$user->is_qualified}}

但我不能让它工作,它一直给我错误的价值。

标签: laravel

解决方案


如果您已经拥有要检查其属性的模型实例,则无需对同一个表进行另一次查询。只需让访问者检查years_of_experience模型的字段:

public function getIsQualifiedAttribute()
{
    return $this->years_of_experience >= 5;
}

{{ $user->is_qualified ? 'Y' : 'N' }}

使用您当前的设置,您正在对数据库进行查询以获取years_of_experience >= 5每次访问器被击中时的第一条记录。如果该表中有任何years_of_experience >= 5记录,则将返回true.


推荐阅读