我可以在查询中使用Mutators吗?

时间:2018-08-10 15:33:12

标签: 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()来获取值。这有可能吗?

请记住,这是一个完全伪的代码,用于说明。由于计划不当,我最终还是这样。

1 个答案:

答案 0 :(得分:2)

不,你不能那样做。

在查询执行后 后,将对变量进行求值。

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

这是不可能的,因为在查询时应用mutator确实会带来很大的性能负担:这等效于循环遍历整个表并对每一行执行详细说明。