在 Laravel 5.2 中返回列值

Posted

技术标签:

【中文标题】在 Laravel 5.2 中返回列值【英文标题】:Return column value in Laravel 5.2 【发布时间】:2016-09-24 05:03:30 【问题描述】:

我是 Laravel 的新手,这是我的问题。

我有一张桌子currentpercentage

这是currentpercentage表的结构

currentpercentage(**id**, name, total_cap, current_usage, created_at, updated_at)

我正在尝试计算当前使用的百分比;基于 total_cap 和当前使用情况。

total_cap = 1000, 
current_usage = 237, 
name = User Name

在我的控制器中,我设置了一个查询来获取 total_cap 的值和 current_usage 的值,然后计算百分比。

当我调用我的查询时,它会返回一个包含列名 (total_cap) 和值 (1000) 的数组。与我查询 current_usage 时相同。


"currentpercentage": [

"total_cap": 1000

    ]

我只想让查询返回没有数组的数字 (1000)。

这是我的查询

$totalcap = CurrentPercentageModel::select('total_cap')->where('name', '=', 'User Name')->get();

如何获取value。或者有没有更简单的方法来计算一次查询的百分比?

CurrentPercentageModel //What I use to connect to the database. DB Model

【问题讨论】:

试试$totalcap = CurrentPercentageModel::select('total_cap')->where('name', '=', 'User Name')->first(); @FabioAntunes 响应为空 用户名正确吗? @FabioAntunes 用户名正确。响应也是正确的,但它带有响应中的列名(“total_cap”:1000),我想要的只是值 1000,所以我可以用它来计算其他数字。 好吧,那你想要->value()而不是->first(),看看我的回答 【参考方案1】:

问题是您使用的是get 方法,即使您只有一行,它也会返回一个集合。

$totalcap = CurrentPercentageModel::select('total_cap')->where('name', '=', 'User Name')->get();

如果您只想要一条记录和一列值,则使用value 方法只获取列的值,更多信息here(您可能需要滚动一点)

$totalcap = CurrentPercentageModel::select('total_cap')->where('name', '=', 'User Name')->value('total_cap');

【讨论】:

以上是关于在 Laravel 5.2 中返回列值的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2控制器返回一个对象

Laravel 5.2 从控制器返回视图

Laravel 5.2 - pluck() 方法返回数组

Laravel 5.2外观getFacadeAccessor返回的内容

从与“Lazy Eager Loading”的关系中返回第一个元素 [Laravel 5.2]

Laravel 5.2 ajax 返回 500 内部服务器错误