时间戳转换器

Laravel Eloquent 特定列错误

日期:2023-05-09     浏览:187    
【中文标题】Laravel Eloquent 特定列错误【英文标题】:Laravel Eloquent specific columns error 【发布时间】:2014-06-26 21:25:21 【问题描述】:

我在 Laravel 4.x 中使用 eloquent 有以下内容:

Book 表有十几个字段。

$single_data = Book::
            selectRaw("GROUP_CONCAT(DISTINCT CAST(id as char) SEPARATOR ',') as type_id_list")
            ->first();

问题:返回的数据是从 selectRaw 中看到的 Book AND type_id_list 内的表中的所有内容。

我只想返回我在 selectRaw 中指定的内容。

建议您在 first() 或 get() 中添加一个列数组,以便仅检索它 - 但是它不适用于您指定表达式或您自己的措辞的自定义 selectRaw。它会引发错误,并且在分析查询时,您首先放入/get 的数组将作为选择的一部分附加。

有人可以解决吗?

【问题讨论】:

first([]) 工作吗? @Andreas 啊,它也可以工作 - 但我会使用 pluck 代替,因为它会立即返回值本身而不是对象。 您可能应该将此报告为错误。 github.com/laravel/framework/issues @Andreas 是你先建议的 - 相信你。 first() 和 first([]) 给出完全相同的结果,这是一个具有单个属性 type_id_list 的 Book 模型(以及与查询无关的其他属性,例如 exists 等),因为 Eloquent提供 selectRaw 会忽略任何先前的选择。给定多个selectRaw 方法,它将只使用最后一个。 【参考方案1】:

first() 将只返回该特定列,但无论如何都包含在 Book 对象中,因此请改用 pluck():

$single_data = Book::
        selectRaw("GROUP_CONCAT(DISTINCT CAST(id as char) SEPARATOR ',') as type_id_list")
          ->pluck('type_id_list');

【讨论】:

注意:Andreas' comment first([]) 会产生正确的结果,但我需要做 ->type_id_list 来获取信息。

相关文章

如何通过分页获取 Laravel Eloquent 中的特定列?

{】如何通过分页获取LaravelEloquent中的特定列?【英文标题】:HowtogetspecificcolumnsinLaravelEloquentwithpagination?【发布时间】:2019-04-0112:10:57【问题描述】:我使用这个表架构:Schema::create(\'forms\',function(Blueprint$table)$table->increments(\'id\...}

在 Laravel Eloquent 中使用“With()”函数获取特定列

{】在LaravelEloquent中使用“With()”函数获取特定列【英文标题】:GetSpecificColumnsUsing“With()”FunctioninLaravelEloquent【发布时间】:2013-11-2002:25:36【问题描述】:我有两张桌子,User和Post。一个User可以有多个posts,而一个post只属于一个...}

Laravel Eloquent 搜索 JSON 数组以获取特定列的值

{】LaravelEloquent搜索JSON数组以获取特定列的值【英文标题】:LaravelEloquentsearchJSONarrayforaspecificcolumn\'svalue【发布时间】:2022-01-1106:47:14【问题描述】:我有一个带有readings(JSON)字段的EloquentBook模型。它是一个12个位置的数组,每个...}

将 for 循环的结果附加到 Laravel 中的 eloquent 输出

{】将for循环的结果附加到Laravel中的eloquent输出【英文标题】:AttachresultofforlooptoeloquentoutputinLaravel【发布时间】:2021-08-2814:03:07【问题描述】:美好的一天。就像我在这篇文章UsingQueryBuilderandMySqltogetcategoriesandsub-categories中解释的...}

Laravel - Eloquent:使用用户发布表从用户那里获取帖子

{】Laravel-Eloquent:使用用户发布表从用户那里获取帖子【英文标题】:Laravel-Eloquent:getpostsfromuserwithusersposttable【发布时间】:2016-12-2405:47:16【问题描述】:我搜索了很多,但没有找到任何答案,所以我希望你能帮助我!我有三个...}

Laravel / Eloquent 模型属性可见性

{】Laravel/Eloquent模型属性可见性【英文标题】:Laravel/EloquentModelAttributeVisibility【发布时间】:2015-01-2600:27:05【问题描述】:以前我使用的ORM已将数据库列直接映射到类属性,这允许您查看特定属性的可见性,就像您通常会限制对...}

Laravel ELOQUENT 问题中的 DISTINCT

{】LaravelELOQUENT问题中的DISTINCT【英文标题】:DISTINCTinlaravelELOQUENTissue【发布时间】:2020-09-1201:11:13【问题描述】:在我的laravel应用程序中,我有两个名为apps和app_payments的表。我想加入这两个表,并按照以下laravelELOQUENT中的说明...}

Laravel 5 eloquent 的 CONCAT 列

{】Laravel5eloquent的CONCAT列【英文标题】:CONCATcolumnswithLaravel5eloquent【发布时间】:2017-08-0118:47:50【问题描述】:将我视为laravel初学者目标是:我有两个列,现在我需要在id前面加上表中同一行的componentname。例如(工作中)...我有M...}

Laravel eloquent 使用关系列更新列

{】Laraveleloquent使用关系列更新列【英文标题】:Laraveleloquentupdatecolumnusingrelationshipcolumn【发布时间】:2020-11-2100:58:16【问题描述】:如何实现这个查询?Sale::with([\'catalog\'])->whereIn(\'id\',$ids)->update([\'price\'=>DB::raw(\'catalog.pri}

如何使用 Laravel 4 Eloquent 连接列?

{】如何使用Laravel4Eloquent连接列?【英文标题】:HowtoconcatenatecolumnswithLaravel4Eloquent?【发布时间】:2014-03-2708:08:12【问题描述】:我有一个名为tenantdetails的表,其中包含Tenant_Id|First_Name|Last_Name|........我想通过MySQL的连接函数将First_...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号