簡體   English   中英

控制器沒有在phalcon php中顯示消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM