如何扩展Laravel的现有外观?

时间:2014-01-11 06:15:41

标签: php laravel laravel-4 eloquent

鉴于以下库存标准用户模型(添加一个小额),我如何添加以下name_list函数,以便通过正常的模型外观提供?

我想用它如下: User::name_list()

注意:我知道我实际上只能将方法标记为static,但我不想访问静态方法,而是通过ioc容器公开的常规方法。

class User extends Eloquent {

    protected $hidden = array('password');
    protected $guarded = array();

    public function name_list() 
    {
            return User::lists("name");
    }

}

1 个答案:

答案 0 :(得分:1)

尝试使用Eloquent范围。使用范围,您可以链接多个方法。

public function scopeName_list($query)
{
   return $query->get()->lists('name');
}

// and then call...
User::name_list();
// or
User::whereActive(true)->name_list();