【问题标题】:Return column value in Laravel 5.2在 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(),看看我的回答

标签: php mysql arrays json laravel


【解决方案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');

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 2016-05-13
    • 2018-01-07
    • 2017-01-20
    • 2017-03-17
    • 2016-10-08
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多