Laravel Pluck 但结合名字+姓氏进行选择

2024-01-12

在 Laravel / Vue 项目中使用 select2 并需要返回以下格式的 JSON:

[
    { id: 0, text: 'enhancement' },
    { id: 1, text: 'bug' }
]

在 Laravel 中,我知道我可以使用 pluck 来创建列表数据,例如对于客户:

$customers = Customer::pluck('id', 'first_name');

但想要将 id 和名字 + 姓氏作为单个名称返回。

我怎样才能做到这一点?


您尝试过使用访问器吗?

https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor

我还没有测试过,但这可以工作:

将其添加到您的客户雄辩模型中:

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

然后尝试:

UPDATED访问器上的 pluck 仅适用于集合。如果你试试Customer::pluck('id', 'full_name')它不会工作,因为没有名为 full_name 的数据库列,因此您必须使用Customer::all()->pluck('full_name', 'id')

$customers = Customer::all()->pluck('full_name', 'id');
  • 作为旁注,为了性能,可能更好Customer::all(['id', 'first_name', 'last_name'])->pluck(...)这样我们就不会从数据库中提取不必要的列。

希望这可以帮助。

更新日期:- 2021 年 8 月 26 日如果我们使用计算属性访问器功能 https://laravel.com/docs/8.x/eloquent-mutators#defining-an-accessor,然后记住一件重要的事情......

Laravel Accessor 功能在从数据库获取数据后起作用。所以我们必须声明查询末尾的“pluck(accessorName)”...

例如:-

错误方法:-

$data = Model::pluck('full_name','id)->get(); 
$data = Model::pluck('full_name','id)->all();

在上面两个查询中,如果数据表中没有 full_name 字段,您将收到未知列错误

正确的方法:-

$data = Model::get()->pluck('full_name','id');
$data = Model::all()->pluck('full_name','id');

在上面的两个查询中,即使数据表中没有 full_name 字段,它也会完美运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel Pluck 但结合名字+姓氏进行选择 的相关文章

  • 基于“属于”关系的雄辩的 where 条件

    假设我有以下模型 class Movie extends Eloquent public function director return this gt belongsTo Director 现在我想使用基于directors 表中的列的
  • Angular2 + Laravel 与实时和 WebSockets

    我构建了一个应用程序 并计划与 Angular 2 和 laravel 进行实时战斗 例如 你按下 攻击 按钮 你的对手就会实时看到他的生命在下降 我的应用程序构建有 前端 角2 Backend PHP Laravel 5 2 现在我正在寻
  • 使用键模式从 Laravel 4 缓存中删除?

    对于我的包 我们使用 Laravel 缓存 我们创建的每个缓存键都有前缀 所以我们得到mypackage config mypackage md5ofafilename有时我需要刷新我的包创建的所有缓存文件 问题是什么 我只知道缓存键的模式
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 这个条带请求是什么?为什么它会多次触发?

    对于使用 stripe 的 Laravel 应用程序 此请求https r stripe com 0被解雇多次 如下所示 我刷新主页后 这些请求立即被触发 问题是我最近得到了一个429 too many requests我的实时服务器出现错
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何将 Select2 与 Reactjs 一起使用?

    我有这样的依赖字段
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • 邮件::队列不工作

    我无法在 laravel 5 4 中对电子邮件进行排队 在之前的 Laravel 5 3 项目中 一切都运行良好 发送仍然有效 Mail send email blank title gt nice content gt message f
  • 如何将 Laravel-5.6 转换为 .exe

    我正在本地主机中加载项目 我的管理员要求我将 laravel 5 6 与 mysql 一起转换为 exe 我是这方面的新手 不知道 有哪位高手可以指导一下吗 提前致谢 我不确定你的管理员是否应该要求你将 Laravel 项目转换为 exe
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • Laravel 4 使用资源控制器轻松删除记录

    我是 Laravel 框架的新手 但我真的很喜欢它 我最大的问题是我一直在寻找如何使用资源控制器删除单个记录 控制器方法 public function destroy id department Department find id de
  • 致命错误:PHP 从版本 7.0 升级到 7.2 后找不到类“SoapClient”

    我升级了PHP 7 0 to 7 2在Ubuntu中 执行升级后 我安装了 Laravel 5 6 升级之前 类 SoapClient 是true 但是升级之后 我遇到了 致命错误 未找到 SoapClient 类 我检查了php ini
  • Laravel http 请求:无法运行多个请求

    我在 Laravel http 请求方面遇到了严重的问题 请帮我解决这个问题 我假设我有 2 个请求路由到相同的控制器 Req 1 http localhost 8000 manualScheduler runScript task nam
  • Laravel 计划命令一旦启动就停止?

    我已经为 laravel 5 1 项目设置了预定命令 它有效 命令已经启动 但愚蠢的是我没有考虑如何停止它 通常您不想停止它 但该命令正在向数据库表中插入近 50 万行 而我只是想确保我可以在不登录服务器的情况下启动它 显然我需要在某个时候
  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • Blade中的Section和Stack有什么区别?

    我们可以使用一个section定义一些 HTML 然后yield那在其他地方 那么为什么我们有堆栈呢 https laravel com docs 5 2 blade stacks https laravel com docs 5 2 bl
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐