2016-11-27 67 views
2

我试图从一行访问单值,但dd();正在获取整行并将其显示在Collection数组中。代码:Laravel雄辩地输出数组集合而不是单个值

$last_id = \App\Cat::limit(1)->orderBy('cat_id','desc')->get(['cat_id']); 
dd($last_id); 

所以,当我需要的JUST "55"值,我得到:

  • "cat_id" => "55"

同样的情况,与他人列,当我需要只是 “普电子” 我得到:

  • "cat_name" => "Eletronics"

我已经尝试过许多像极限,列表,首先并没有什么事情发生,当我尝试调用像dd($lastId->cat_id);它给了我一个“未定义的属性”错误。所以现在我真的没有选择,因为我正在使用文档示例,甚至不能正常工作。所以任何帮助都会很棒,谢谢。

回答

0

我想你不明白模型代表整行表。 这意味着$last_id在你的代码:

$last_id = \App\Cat::limit(1)->orderBy('cat_id','desc')->get(['cat_id']); 

代表cats表的整行。如果你想获得id,你必须这样做:

$cat = \App\Cat::first(1)->orderBy('cat_id','desc')->get(); 
dd($cat->id); 

更重要的是,如果你写

$cat = \App\Cat::first(); 

你会得到第一猫从cats表,然后您可以访问的每一列此行属性为$cat对象

如果Laravel说您的属性cat_id未定义,那么您的表格不宜包含cat_id列。

+0

我看过“first();”在一些相似的问题,所以我试过,因为我没有选择,但我必须承认我以前从未使用它,所以谢谢你的提示。不过,我可以使用“相同的行代码”,但没有“take”部分,从其他许多表中只能得到一列。试过你的代码(再次,因为我真的曾尝试过),并一直说这个列不存在。 1 - 我百分之百肯定这个列存在,因为我检查迁移一个phpmyadmin,如果它不存在,它会出现在“orderBy”,我用它像参数。 –

+0

已经知道了,我改变了“价值”方法。 \ APP \猫:: ORDERBY( “ID”, “内容描述”) - >值( “ID”);谢谢你 –

0

已经有了它,我改变了“价值”方法。

\App\Cat::orderBy("id","desc")->value("id");