我是phalcon的新手,我想知道将一些数据从控制器传递到数据库视图的正确方法是什么。例如
$lastOrder = LeaOrder::findFirst([
'conditions' => 'user_id = ?1',
'order' => "id DESC",
'bind' => [
1 => $userID,
]
]);
$this->view->setVars([
'lastOrder'=> $lastOnGoingOrder,
]);
我可以在LeaOrder对象中显示用户的数据,例如{{lastOrder->name}}
,还是应该在将对象传入视图之前创建toArray()
,然后{{lastOrder[name]}}
或者这不重要,就像我处理这个一样?谢谢你的所有建议,
答案 0 :(得分:1)
您甚至可以使用快速语法:
$this->view->lastOrder = LeaOrder::findFirst([
'conditions' => 'user_id = ?1',
'order' => "id DESC",
'bind' => [
1 => $userID,
]
]);
在视图中:
// To access object properties
{{ lastOrder.name }}
// To access array keys
{{ lastOrder['name'] }}
Phalcon ORM返回Model对象,但是如果你真的需要一个数组,你可以在对象上调用->toArray()
方法。
我建议您阅读文档中的这一部分:https://docs.phalconphp.com/en/3.2/volt 过滤器 - 部分也非常有用。
更新:调试ORM结果。
当转储ORM结果时,由于Phalcon正在使用DI(依赖注入),您会看到大量信息。一种简单的调试方法是在模型上调用->toArray()
。这样您只能看到模型属性。
$this->view->order = LeaOrder::findFirstById(82);
print_r($this->view->order->toArray();
但请注意: toArray()
正在将您的对象转换为数组,但由于您没有分配它而只是在print_r
内进行调试,以后再进行调试将它用作代码/模板中的对象。
更新2: Phalcon调试的便捷功能
function d($what)
{
if (is_object($what) AND method_exists($what, 'toArray')) {
$what = $what->toArray();
}
echo '<pre>';
print_r($what);
die('</pre>');
}
// Usage:
$this->view->order = LeaOrder::findFirstById(82);
d($this->view->order);