Laravel 4:如何在where子句中使用Accessor

Oll*_*lli 2 php database accessor eloquent laravel-4

是否可以在Laravel 4中使用Accessor进行比较,例如:

class User extends Eloquent {

   // define Accessor
   public function getSpecialNameAttribute()
   {
       return 'Joda';
   }

}

$User = User::where('gender','=','male')->where('specialName','=','Joda');
Run Code Online (Sandbox Code Playgroud)

Nay*_*est 9

是的,您可以使用它来过滤查询结果:

User
    ::where('gender','=','male')
    ->get()
    ->filter(function($item) {
        return $item->specialName === 'Luke';
    });
Run Code Online (Sandbox Code Playgroud)

(!)请注意,在查询数据库之后将应用过滤,因此在大数据的情况下,此解决方案将存在性能问题.

有关详细信息,我已经用Google搜索了这个收藏教程.

此外,我建议查询范围 可能有助于以最佳方式完成您的任务.