【问题标题】:Use accessor mutator's within Laravel 4 lists method在 Laravel 4 列表方法中使用访问器修改器
【发布时间】:2015-07-28 09:07:23
【问题描述】:

我有一个简单的 mutator:

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

但我也有一个方法可以返回特定用户列表以供选择输入使用:

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

我需要返回的数组是 ['First Name Last Name', 'id']

但是mutator不起作用,例如

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

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

Taylor 标记为已完成,但我无法使其正常工作。使用 Laravel 4.2。

有什么帮助吗?

【问题讨论】:

    标签: php laravel laravel-4 mutators


    【解决方案1】:

    您需要拨打Eloquent Collection 上的lists()。因此,请确保 IsDeliveryManager() 返回正确的值。如果你能分享IsDeliveryManager()的代码就更好了。如果是query scope,你需要在lists()之前调用get()

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

    【讨论】:

    • 按获取排序。谢谢。
    【解决方案2】:

    mutator,即使是驼峰式,也应该小写。

    所以你应该这样称呼它:

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

    【讨论】:

    • 是的,只要发布问题就尝试过,但同样的错误。它查找“全名”的字段名称
    • 以小写或大写开头没有区别。虽然最好从较低的开始,但两者都给出了正确的结果。
    猜你喜欢
    • 2014-04-24
    • 2014-03-04
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多