【问题标题】:Yii Framework Tutorial - file not foundYii 框架教程 - 找不到文件
【发布时间】:2012-03-28 05:50:59
【问题描述】:

我正在学习 Yii 框架。我一直在关注this

教程。我已遵循所有步骤并按索引页面加载。在我的 index.php 页面中,我指向位于

中的另外两个页面

受保护/查看/消息

以下是我在上面提到的message文件夹中的index.php中的代码。

<html>
<body>
    <h1>Welcome</h1>
    <p> To view our message go to... <?php echo CHtml::link('Here', '/message/show')?> </p>
    <p> To edit our message go to... <?php echo CHtml::link('Here', '/message/edit')?> </p>
</body>
</html>

“message”是我通过yii shell应用生成模型和控制器时给出的ID。

问题是,在上面的页面加载之后,我点击上面的任何一个 URL,它都指向

"localhost:8080/message/show"

“本地主机:8080/消息/编辑”

,而这些文件的实际位置是

"localhost:8080/test/protected/views/message/..."

我可能做错了什么?

【问题讨论】:

标签: yii


【解决方案1】:

您必须使用array() 作为第二个参数:

<?php echo CHtml::link('Here', array('/message/show'))?>

检查normalizeUrl 以了解它。干杯。

【讨论】:

  • 谢谢 :) 所以每当数据类型“混合”时,我是否使用数组?
  • 文档中的“混合”意味着参数可以是“字符串”或“数组”。所以每当你想调用控制器的动作时,最好使用数组('controller/action')而不是简单的字符串'controller/action',以避免路由冲突。
  • 再次感谢...@Puigcerber 还有一个问题。这些可能的冲突是什么?
  • 就像你现在发生的一样,显示“localhost:8080/message/show”而不是“localhost:8080/test/message/show”。当您在模块内部时也会发生这种情况,例如用户,它可能会向您显示类似“localhost:8080/test/user/message/show”的内容。
【解决方案2】:

阅读Yii tutorial,真的很好。 关于URL Managment的话题适合你的问题,你可以找到答案。 (顺便说一下,Yii 只有一个入口点 - index.php,不能直接访问 'protected' 文件夹中的文件,必须保护 'protected' 文件夹:) urlManager 为路由请求做了特殊的工作)

【讨论】:

  • 谢谢!那么访问任何其他页面都必须通过框架来处理?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2022-05-23
  • 2013-05-21
相关资源
最近更新 更多