【问题标题】:Laravel get more data in select listLaravel 在选择列表中获取更多数据
【发布时间】:2014-12-05 13:49:59
【问题描述】:

我正在制作我的用户的选择列表,但我的用户以姓氏和名字存储在我的数据库中。列表中的所有文档仅使用 te 数据库中的一个列项。如何在我的列表中获得这两个名字?

控制器

public function make() {
    $users = User::lists('lastname','id');
    return View::make('admin.awardAchievement')->with('users', $users);
}

查看

{{ Form::select('user', $users , Input::old('user')) }}

这只会打印出我的用户的姓氏,但我希望列表显示名字和姓氏。有人可以帮忙吗?

【问题讨论】:

    标签: php mysql forms list laravel


    【解决方案1】:

    您可以通过使用自定义 DB 表达式并连接 lastname + id 来做到这一点。这是因为表单助手只喜欢 1 列的文本(选项文本)和 1 列的 id(选项值属性)。

    $users = User::select(DB::raw('CONCAT(lastname, id) AS userselect, id'))->lists('userselect', 'id');
    

    我认为这是可行的方法,但您必须记住,CONCAT 在不同的 DBMS 上的行为可能有所不同,或者此功能甚至不存在。如果您确实关心这一点,我会遍历您的用户列表并手动与标准 PHP 脚本连接。

    另一种选择是仅调整表单助手以支持您的需求。虽然如果您想保持代码可快速升级,我不建议您这样做。

    编辑:检查第一条评论

    【讨论】:

    【解决方案2】:

    您可以在模型中添加一个 setter,例如:

    public function getFullNameAttribute()
    {
        return $this->attributes['firstname'] . ' ' . $this->attributes['lastname'];
    }
    

    然后你就可以做

    $users = User::lists('fullname','id');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 2017-10-21
      • 2014-10-14
      相关资源
      最近更新 更多