问题标签 [zend-framework-mvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zend-framework - 在 Zend Framework 中控制传递给 View 的访问/处理对象/模型数据的最佳方法
我想将数据传递给视图,我有两个选择(如果您知道更好的方法,请提及)。
我正在使用 Zend_Based ORM 系统,并且以一种方式编码,如果我在数据库中添加一个新字段,它会自动在模型中可用。
第一个:我将模型的数据转换为数组并将数组传递给视图。这样,我将在视图中获得所有可用数据,但模型的功能/操作将不可用。如果我需要特定的功能,我将编写视图助手,而模型中可能已经对相同的功能进行了编码。例如,以特定格式获取日期。
第二:或者我将完整的模型对象传递给视图,这样我将拥有模型的所有功能,但视图将能够访问模型的保存功能,这是一件坏事。我可以在模型中添加更多功能以使其成为只读,但这将是额外的工作。
任何建议哪种方法更好。
php - 从 Zend_Controller_Request 创建 Zend_Navigation_Page_Mvc 实例
我的应用程序中有构成导航树的页面。我想使用请求的值将页面动态插入到我的导航中。我已经有了查找页面然后addPage()
在其上调用方法的逻辑。我正在寻找的是如何轻松地将Zend_Controller_Request
值传递给Zend_Navigation_Page::factory()
以便我可以添加该页面。也许甚至写成一个插件?
解决方案
AngelP 是最接近的,所以我给了他信任,但这是我的解决方案:
此代码从控制器操作执行。 是我在视图中的 $this->view->siteNav
一个实例。从实例很容易传递给实例的方法,然后再传递给实例的方法。Zend_Navigation
getParams()
Zend_Controller_Request
Zend_Navigation_Page::factory()
setParams()
Zend_Navigation_Page_Mvc
php - 如何设置 Zend_View_Helper_Navigation_XXX 使用的 id 前缀
当我在我的视图中呈现一个Zend_Nagivation
实例时,默认情况下,锚标记的 id 分配有视图助手的前缀,后跟一个破折号,然后是页面的 id。
第 1 页的锚点 id 示例(都使用相同的Zend_Nagivation
实例):
Zend_View_Helper_Navigation_Menu
=“菜单-1”Zend_View_Helper_Navigation_Breadcrumbs
=“面包屑-1”My_View_Helper_Navigation_MyMenu
=“我的菜单-1”
这对于大多数情况来说是完美的,但我想手动设置该前缀,但我找不到办法。
解决方案
指定前缀可以通过添加如下代码来完成,然后setIdPrefix()
在渲染时调用:
model-view-controller - Zend 的 MVC 替代方案
我正在尝试使用 Zend 创建我的第一个项目,但这真的让我很困惑。IMO 配置/引导太复杂了。
所以我在考虑不要使用 Zend 的所有东西,而只使用对我有用的类。对于模板系统,我可以使用Savant 3。
我的问题是我可以在 MVC 方面使用什么?有没有为此的任何 php 项目?我不是在寻找一个框架,只是一个处理所有请求并将它们发送到我自己制作的控制器的东西。然后我会将它们发送给 Savant。
(我其实很喜欢 codeigniters 做这些事情的方式,但这是一个学校项目,我需要与 Zend 合作)
我知道你们中的大多数人可能会建议坚持使用 Zend 的 MVC,或者尝试其他框架,但这不是我要问的 :)
model-view-controller - 在 Zend MVC 中,如何将控制器中的变量集传递给布局?
我必须将页面标题名称和元信息传递给布局,但不确定如何执行此操作 =/
zend-framework - 如何在所有控制器的 init() 函数中运行相同的行?
我的所有控制器都需要相同的 2 行,每个控制器都有自己的初始化逻辑,但是这两行对所有控制器都是通用的。
如何避免重复代码?
更新:
好的,FlashMessenger 只是一个例子,假设我需要在每个动作中写一个日志行,除了'someAction'@'someController'。所以新的共同路线应该是。
问题是,我应该将这些行放在哪里以避免在每个控制器的所有 init() 中重复它们。这些行应该放在 bootstrap?。如果是这样:如何跳过“someAction”的日志行。或者我应该实现一个“BaseController”并让我的所有控制器都从它扩展。如果是这样:我如何自动加载它?(致命错误:找不到类“BaseController”)。
php - 在 Zend/MVC 中,如何为子应用程序或子模块设置控制器和视图?
我所有的zend应用程序都是这样的
我需要为这样的游戏创建一个 URL
当它像一个模块或子应用程序时,如何在此目录结构中设置控制器和视图?
zend-framework - Zend 框架:指定的控制器无效(错误)???帮助
我将我的项目从 windows 移动到 ubuntu 并在尝试运行项目时出现此错误:
我的默认模块中确实有 ErrorController.php 文件:
我的项目在windows下运行非常顺利,但是在ubuntu下运行时总是出现上面的错误。我怎么解决这个问题??请帮我!ps:对不起我的英语不好。
zend-framework - 思路讨论:zend MVC实现中动态视图脚本切换
这基本上是“我做对了吗?” 问题。
我知道如何在运行时透明地切换默认/移动版本/管理区域的视图。我想知道您在这种方法中看到的利弊。
主要要求是:
- 几乎无需编码即可切换整个应用程序
- 集成到 zend MVC 工作流中,而不是覆盖它
- 回退到默认值
- 保留标准功能
- 控制器不应该知道变化
这是我的伪助手
应该如何配置助手并不重要,并且跳过了该部分
这是它应该如何工作的示例:
$this->_setBasePaths(); 将视图基本路径设置为application/views/default/和application/views/admin/
$this->_setVrPathSpecs(); 将路径规范设置为 ' :module/:controller/:action.:suffix '
所以对于 foo-baz-bar 它将在
1.application /views/admin/scripts/foo/baz/bar.phtml 2.application
/ views/default/scripts/foo/baz/bar.phtml 搜索
如果未找到视图脚本回退到默认 ViewRenderer:
3. application/modules/foo/views/scripts/baz/bar.phtml
如果我错过了什么,请提出问题
更新:经过一些研究,我决定使用动作助手根据变形器和指定变量的规范自动注册视图脚本路径。如果来自其他模块的部分请求,我还修改了部分帮助程序以注册 scriptPaths。
这是动作助手的粗略但有效的版本:
php - Zend_Auth 最佳实践
我的目标是要求某些页面登录。我正在使用 Zend Framework MVC,并且正在尝试查找有关最佳实践的示例。
关于我正在寻找的一些注释:
- 我希望未登录的用户获得一个登录框,然后在通过身份验证后返回登录版本的页面
- 我想使用依赖注入,并避免单例
- 小代码占用空间 - 与 Zend mvc 结构相关联
- 登录框应该是一个单独的控制器并进行标头重定向吗?认证成功后如何返回登陆页面?一个简单地调用登录控制器操作以在登录页面中显示登录框的想法,或者这是搜索引擎索引的一个缺点?
- 能够使用外部库来处理 cookie
或者完全不同的东西。我对 Zend 框架还很陌生,我想以“正确的方式”来做。