在Laravel 4列表方法中使用accessor mutator

时间:2015-07-28 09:07:23

标签: php laravel laravel-4 mutators

我有一个简单的变异器:

public function getFullnameAttribute($value)
{
    return $this->first_name. ' ' .$this->last_name;
}

但是我还有一个方法可以返回特定用户的列表,以便在选择输入中使用:

static function getDeliveryManagers()
{
    return User::IsDeliveryManager()->lists('first_name', 'id');
}

我需要将该数组恢复为['名字姓氏',' id']

但是变异者并不起作用,例如

return User::IsDeliveryManager()->lists('Fullname', 'id');

我发现了这个:https://github.com/laravel/framework/issues/668

泰勒标记着已经完成,但我无法让它发挥作用。使用Laravel 4.2。

任何帮助?

2 个答案:

答案 0 :(得分:1)

您需要致电lists()上的Eloquent Collection。因此,请确保IsDeliveryManager()返回正确的值。如果您可以共享IsDeliveryManager()的代码,那就更好了。如果是query scope,则需要在get()之前致电lists()

return User::IsDeliveryManager()->get()->lists('fullname', 'id');

答案 1 :(得分:0)

即使是在camelcase中,mutator应该用小写字母调用。

所以你应该这样称呼它:

return User::IsDeliveryManager()->lists('fullname', 'id');