Phalcon 标签在 /index/index.phtml 工作但不在 /signup/index.phtml

Phalcon Tag working at /index/index.phtml but not at /signup/index.phtml

我正在按照 Phalcon 页面 (https://docs.phalconphp.com/en/3.4/tutorial-base) 上的教程进行操作,但我在创建 /view/signup/index.phtml.

时遇到了困难

当我访问 /signup/index.phtml 页面时,它只显示 HTML 标签,即 "Sign up using this form"。 $this->tag 节目的 None。我将 linkTo 标记从 /views/index/index.phtml 复制到注册视图,但它没有正常工作,即使它在 index/index.phtml 中工作得很好。不知何故,/signup 视图中没有任何标签在工作。

有人知道为什么吗?

代码

/app/controllers/SignupController.php

<?php

use Phalcon\Mvc\Controller;

class SignupController extends Controller
{
    public function indexAction()
       {

       }
}

/app/views/signup/index.phtml

<h2>Sign up using this form</h2>

<?php echo $this->tag->form("signup/register"); ?>

<p>
    <label for="name">Name</label>
    <?php echo $this->tag->textField("name"); ?>
</p>

<p>
    <label for="email">E-Mail</label>
    <?php echo $this->tag->textField("email"); ?>
</p>

<p>
    <?php echo $this->tag->submitButton("Register"); ?>
</p>

检查你的URL

您是否在浏览器地址栏中使用 /signup/index.phtml

你应该有类似 localhost/tutorial/signup

您可以通过直接转到它们的路径来直观地看到模板,但是 php 不会 运行。

并未包含所有资源

如果您正在使用本教程中看到的 URL 路径,请通过执行以下操作检查所有资源是否正确加载到 SignupController 中:

var_dump($this->tag)

这应该显示关于 "form" 或一大堆文本的内容。如果您什么也没看到,则说明 `Phalcon\Tag' class 没有正确加载。

您甚至可能在某处打错了字。我建议只在错误检查时复制和粘贴教程而不是键入,以确保没有拼写错误。您可以使用差异检查器之类的工具将您的文件与他们的教程进行比较。

在线差异检查器:https://www.diffchecker.com/

不应直接访问视图。尝试使用 Phalcon Developer Tools to set up your app skeleton or use the simple MVC example。请注意,您必须启用 mod_rewrite(如果您在 Apache 中工作)。然后继续按照教程(创建 LoaderDIview 等),您会惊讶于 Phalcon 的魔力。祝你好运!