[英]controller not displaying a message in phalcon php
我試圖在Phalcon PHP框架中做一個簡單的例子,所以我有一個視圖,其中包含兩個字段名稱和電子郵件以及一個提交按鈕。 當我單擊此按鈕時,將調用控制器的功能以將名稱和電子郵件存儲在DB中。 這個動作很順利,問題是我試圖在動作結束后顯示一條消息,但我仍然有包含表單(名稱,電子郵件)的視圖。 這是我的代碼。
我的結賬控制器。
<?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>
您可以使用Flash消息 ,因此您不必破壞應用程序流。 問候
控制器代碼中的echo()
不會(不應該)工作,除非你關閉你的視圖,因為它在調度后被緩沖和清除。
如果你想確保它以這種方式發生,只需在registerAction()
方法的末尾添加die()
。
如果為registerAction()
創建單獨的視圖,則可以在控制器中使用$this->view->message = ...
或$this->view->setVar('message', ...)
聲明的變量方法。 在視圖文件中,您可以通過<?php echo $this->view->message; ?>
重用它們<?php echo $this->view->message; ?>
<?php echo $this->view->message; ?>
或<? echo $message; ?>
<? echo $message; ?>
<? echo $message; ?>
。
我想你必須在控制器函數registerAction的末尾寫下面一行
$這 - >查看 - >禁用();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.