首页 / PHP / PhalconPHP视图/布局/控制器
PhalconPHP视图/布局/控制器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PhalconPHP视图/布局/控制器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1663字,纯文字阅读大概需要3分钟。
内容图文
![PhalconPHP视图/布局/控制器](/upload/InfoBanner/zyjiaocheng/662/7697a374aca447c0823959cd3c842b95.jpg)
我是Phalcon的新手.我创建了一个PhalconPHP应用程序,该应用程序从数据库中获取菜单元素.我使用布局来创建在index.volt中调用的菜单,但是布局直接调用了模型函数.
我认为这不是最佳解决方案,也许我应该在模型和布局之间使用控制器.
布局:
<?php
$menus = Menus::find();
foreach ($menus as $menu) {
echo "<li>".$menu->name."</li>";
}
指数:
<!DOCTYPE html>
<html>
<head>
<title>Phalcon PHP Framework</title>
</head>
<?php $this->partial("layouts/menus") ?>
{{ content() }}
</html>
我真的很感激,有人告诉我什么是最好的解决方案.
解决方法:
如果生成菜单,则可能正在寻找扩展BaseController类的方法.在所有控制器(如菜单,元数据或面包屑)上生成所需内容的方法是相当不错的做法.
class BaseController extends \Phalcon\Mvc\Controller {
function initialize() {
$menus = Menus::find(array(
// you may want to condition query based on user cookie
// or controller you are in
'conditions' => 'controller = "' . $this->dispatcher->getControllerName() . '"'
));
// and set it as View variable to use it if you want
$this->view->setVar('menus', $menus);
}
}
并将所有控制器设置为默认使用:
class DefaultController extends BaseController { }
比menus.phtml中的:
<?php
foreach ($menus as $menu) {
echo "<li>".$menu->name."</li>";
}
应该足够了.在Volt中看起来更好:
<ul>
{% for menu in menus %}
<li>
<a href="{{ menu.url }}">{{ menu.name }}</a>
</li>
{% enfor %}
如果遇到更复杂的问题,例如仅在50%的页面上生成内容,则可能需要在“仅查看”参数中添加例如:
$this->view->setVar('menus', array(
'conditions' => 'controller = "' . $this->dispatcher->getControllerName() . '"'
));
但这可能不是一个好的解决方案,并且不会阻止您使用View中的模型,这是我想避免的.稍微好一点的方法是将构建的查询设置为queryBuilder并在视图循环中运行其-> execute(),以在不需要时不给DB施加压力.
内容总结
以上是互联网集市为您收集整理的PhalconPHP视图/布局/控制器全部内容,希望文章能够帮你解决PhalconPHP视图/布局/控制器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。