【问题标题】:controller not displaying a message in phalcon php控制器未在 phalcon php 中显示消息
【发布时间】:2015-03-12 15:01:53
【问题描述】:

我试图在 Phalcon PHP 框架中做一个简单的例子,所以我有一个包含两个字段名称和电子邮件以及一个提交按钮的视图。当我单击此按钮时,将调用控制器的功能以将名称和电子邮件存储在数据库中。此操作进展顺利,问题是我试图在操作结束后显示一条消息,但我仍然拥有包含表单(名称、电子邮件)的视图。这是我的代码。

我的结帐控制器。

<?php

class CheckoutController extends \Phalcon\Mvc\Controller
{

	public function indexAction()
    {
       

    }

    public function registerAction()
    {
        $email = new Emails();

        //Stocker l'email et vérifier les erreurs
        $success = $email->save($this->request->getPost(), array('name', 'email'));

        if ($success) {
            echo "Thanks for shopping with us!";
        } else {
            echo "Sorry:";
            foreach ($user->getMessages() as $message) {
                echo $message->getMessage(), "<br/>";
            }
        }

    }

}

观点

<!DOCTYPE html>
<html>
<head>
	<title>Yuzu Test</title>
</head>
<body>
<?php use Phalcon\Tag; ?>

<h2>Checkout</h2>

<?php echo Tag::form("checkout/register"); ?>

 <td>
 	<tr>
	    <label for="name">Name: </label>
	    <?php echo Tag::textField("name") ?>
 	</tr>
 </td>

 <td>
 	<tr>
	    <label for="name">E-Mail: </label>
	    <?php echo Tag::textField("email") ?>
 	</tr>
 </td>

 <td>
 	<tr>
	     <?php echo Tag::submitButton("Checkout") ?>
 	</tr>
 </td>

</form>

</body>
</html>

【问题讨论】:

    标签: php phalcon


    【解决方案1】:

    您可以使用Flash Messages,因此您不必中断应用程序流程。 问候

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    【解决方案2】:

    echo() 在控制器代码期间不会(不应该)工作,除非你关闭你的视图,因为它在调度后被缓冲和清除。

    如果您想确保它是这样发生的,只需在 registerAction() 方法的末尾添加 die()

    如果您为registerAction() 创建单独的视图,您可以在控制器方法中使用您通过$this-&gt;view-&gt;message = ...$this-&gt;view-&gt;setVar('message', ...) 声明的变量。然后,在视图文件中,您可以通过&lt;?php echo $this-&gt;view-&gt;message; ?&gt;&lt;? echo $message; ?&gt; 重复使用它们。

    【讨论】:

    • 我已经尝试了你的解决方案,但仍然存在同样的问题,我在 echo linge 之前添加了这一行,它正在工作“$this->view->disable();”。无论如何感谢您的帮助
    • 在 Phalcon 论坛上看到了。见那里的回复。 forum.phalconphp.com/discussion/6151/…
    【解决方案3】:

    我认为您必须在控制器函数 registerAction 的末尾写下以下行

    $this->view->disable();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2021-10-28
      • 2011-09-21
      • 2013-07-10
      • 2011-03-15
      • 2018-04-02
      • 2017-07-28
      相关资源
      最近更新 更多