Loops Laravel 4 foreach循环-希望显示最后一个元素
我目前正在尝试设置一个编辑页面,其中使用json_decode填充订单,以解码创建表单时保存的json信息。因为表单的大小可以更改,所以我必须创建正确数量的输入,以便所有json数据都有一个显示位置。幸运的是,由于输入被编号,这应该不难做到。不幸的是,我不知道如何选取已解码的json信息的最后一个元素。目前我正在使用:Loops Laravel 4 foreach循环-希望显示最后一个元素,loops,foreach,laravel,laravel-4,Loops,Foreach,Laravel,Laravel 4,我目前正在尝试设置一个编辑页面,其中使用json_decode填充订单,以解码创建表单时保存的json信息。因为表单的大小可以更改,所以我必须创建正确数量的输入,以便所有json数据都有一个显示位置。幸运的是,由于输入被编号,这应该不难做到。不幸的是,我不知道如何选取已解码的json信息的最后一个元素。目前我正在使用: public function getEdit($id){ $order = Order::where('id', '=', $id); if(
public function getEdit($id){
$order = Order::where('id', '=', $id);
if($order->count()) {
$order = $order->first();
$order->order_serialized = json_decode($order->order_serialized);
foreach($order->order_serialized as $key => $value){
$order->$key = $value;
}
return View::make('orders.edit')
->with('order', $order);
} else {
return App::abort(404);
}
}
为了解码信息,它工作得非常出色,但我需要能够拾取最后一个元素,以便能够找到输入的总数,并且不确定如何在不干扰foreach循环的情况下执行此操作。我们将非常感谢您的任何帮助!!非常感谢你 您可以使用
count
和toArray
方法查找最后一项
$nItem = $order->count();
$aOrder = $order->toArray();
$aLastItem = $aOrder[$nItem-1];
您可以使用
count
和toArray
方法查找最后一项
$nItem = $order->count();
$aOrder = $order->toArray();
$aLastItem = $aOrder[$nItem-1];
集合有一个
last()
函数来补充first()
函数。集合有一个last()
函数来补充first()
函数。谢谢!听起来这正是我想要的。快速提问-它说“Undefined offset:6”你知道这意味着什么吗?你确定数组的索引是数字而不是列名吗?未定义的偏移量6表示它正在查找不存在的$aOrder[6]var\u dump($aOrder)
,并查看元素的外观。虽然不确定这是否太重要,但ceejayoz有一个更清晰的答案,而且我没有意识到有一个last()
方法。很抱歉,我没有看到对此的评论。我dd($aoorder)并看到它列出了所有的输入,这很好。我看了看dd($nItem),注意到它是7,尽管还有更多的项目,所以我以后还要看。但再次感谢!谢谢听起来这正是我想要的。快速提问-它说“Undefined offset:6”你知道这意味着什么吗?你确定数组的索引是数字而不是列名吗?未定义的偏移量6表示它正在查找不存在的$aOrder[6]var\u dump($aOrder)
,并查看元素的外观。虽然不确定这是否太重要,但ceejayoz有一个更清晰的答案,而且我没有意识到有一个last()
方法。很抱歉,我没有看到对此的评论。我dd($aoorder)并看到它列出了所有的输入,这很好。我看了看dd($nItem),注意到它是7,尽管还有更多的项目,所以我以后还要看。但再次感谢!我尝试像这样使用last()foreach($order->order\u序列化为$key=>$value){$order->$key=$value;if($order->$key->last()){$last\u元素=$order->$key;};};},但调试说我试图在非对象上使用它。不在foreach循环中,在它之外,比如$order->last()是您的$order对象的最后一行对不起,我没有看到您之前的评论。这看起来很棒。我有个简单的问题。在我的数据库中,表单的所有输入都存储在json编码信息的“order_serialized”行中。为了达到这个目的,我想使用:$order->order\u serialized=json\u decode($order->order\u serialized)$last_item=$order->order_serialized->last()代码>但它返回“调用未定义的方法stdClass::last()”,知道我哪里出错了吗?我尝试像这样使用last()foreach($order->order\u序列化为$key=>$value){$order->$key=$value;if($order->$key->last()){$last\u元素=$order->$key;};}但是调试说我试图在一个非对象上使用它。不在foreach循环中,在它之外,比如$order->last()是$order对象的最后一行抱歉,我之前没有看到你的评论。这看起来很棒。我有个简单的问题。在我的数据库中,表单的所有输入都存储在json编码信息的“order_serialized”行中。为了达到这个目的,我想使用:$order->order\u serialized=json\u decode($order->order\u serialized)$last_item=$order->order_serialized->last()代码>但返回“调用未定义的方法stdClass::last()”,知道我哪里出错了吗?