在 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外观getFacadeAccessor返回的内容