Laravel 我可以在查询中使用变量吗?

Laravel 我可以在查询中使用变量吗?,laravel,laravel-5.6,laravel-query-builder,mutators,Laravel,Laravel 5.6,Laravel Query Builder,Mutators,我已经在我的模型中创建了一个变体 Class Client { protected $fillable = ['name', 'age'] public function getIndustryAttribute() { // some evaluations; return "Programmer" } } 现在,我尝试使用Client::where('industry',“Programmer”)->get()来获取值。这可能吗 请记住,这完全

我已经在我的模型中创建了一个变体

Class Client {
   protected $fillable = ['name', 'age']

   public function getIndustryAttribute() {
      // some evaluations;

      return "Programmer"
   }
}
现在,我尝试使用
Client::where('industry',“Programmer”)->get()
来获取值。这可能吗

请记住,这完全是一个伪代码,便于解释。我这样做是因为计划失误

不,你不能那样做

在执行查询后,对变异子进行求值

查询时可以做的是定义正确的


这是不可能的,因为在查询时应用一个mutator将非常高的性能:这相当于在整个表中循环,并对每一行执行细化。

正如@gbalduzzi的回答所指出的,您不能使用Laravel的mutator,在查询返回的
模型
对象后,将对它们进行评估。但是,有一种方法可以实现这一点,具体取决于您的数据库平台。MySQL提供了一种称为的解决方案。不过,我不能代表任何其他受支持的数据库发言。当然,这完全取决于你需要什么样的逻辑,尽管这可能不可行。