需要来自Eloquent的INT。获取JSON字符串

时间:2014-05-13 12:43:55

标签: php laravel eloquent

我有这个问题:

 static function findIdOnName($pageName){
    return Fanpages::select('id')
                ->where('url', '=', $pageName)
            ->get();
}

回复:(完成print_r时)

  

[{" ID":17}]

我只是想要INT(在这种情况下为17)我搜索了互联网,但我无法找到它。随机尝试在查询中添加 - > toString()等,但到目前为止,没有好处。

2 个答案:

答案 0 :(得分:2)

如果您没有返回包含数据的视图,那么Laravel会自动将您的数据转换为json。为了达到你想要的效果,你可以简单地做一些像

这样的事情
$data = Fanpages::select('id')->where('url', '=', $pageName)->get();
die($data->id);

但是,不建议退出此类应用程序。您应该保留json响应并使用它,或者将数据发送到基本刀片模板。

答案 1 :(得分:2)

您的代码返回Collection一个Model(如果有更多匹配的where子句,则返回多个模型),而您需要的方法是pluck

return Fanpages::where('url', '=', $pageName)->pluck('id');
// returns INT 17

因为它返回匹配id子句的第一行的列WHERE的值。