在 Laravel 4 列表方法中使用访问器修改器

Use accessor mutator's within Laravel 4 lists method

我有一个简单的修改器:

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

但我也有一个方法可以 returns 用于 select 输入的特定用户列表:

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

我需要返回的数组为 ['First Name Last Name'、'id']

但是修改器不起作用,例如

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

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

Taylor 标记为已完成但我无法让它工作。使用 Laravel 4.2.

有什么帮助吗?

修改器,即使是驼峰式的,也应该以小写形式调用。

所以你应该这样称呼它:

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

您需要在 Eloquent Collection 上致电 lists()。因此,请确保 IsDeliveryManager() 返回正确的值。如果能分享一下IsDeliveryManager()的代码就更好了。如果它是 query scope 你需要在 lists().

之前调用 get()
return User::IsDeliveryManager()->get()->lists('fullname', 'id');