【问题标题】:CakePHP setFlash not showingCakePHP setFlash 没有显示
【发布时间】:2011-08-14 07:00:26
【问题描述】:

setFlash 在我的 CakePHP 1.3 应用程序中停止工作。控制器和视图代码都在那里,我上次检查时它工作正常。问题是整个应用程序,而不仅仅是一个视图/控制器。

我知道 ?> 问题后的空格,但事实并非如此。另外,我读到了一个 missplaced dot 打破 setFlash - 也不是这样。有什么想法吗?

【问题讨论】:

  • 调试($this->Session->read('Message'));在你设置Flash之后,你会得到什么?
  • @Anh Pham - 我的 setFlash 消息显示如下:Array ( [flash] => Array ( [message] => Form validation error, please try again. [element] => default [params] => Array ( ) ) )

标签: cakephp cakephp-1.3


【解决方案1】:

检查您的布局中是否包含echo $session->flash();。如果正确,请尝试在 flash() 之前再次输入debug($this->Session->read('Message'));,看看会得到什么。

【讨论】:

  • 我在布局中有echo $session->flash();debug($this->Session->read('Message')); 导致 setFlash 消息的调试显示 - setFlash 在调试中正确显示。
  • 这很奇怪,可能会检查 css,以及在哪里回显 flash 以确保它没有被隐藏。
  • 感谢您的想法,但也不是这样。我还检查了浏览器中的页面源,并且 setFlash 消息根本不见了。
  • 好的。不得已的方法是在 cake 内核中调试,这里是 cake/lib 文件夹中的代码:api.cakephp.org/view_source/session-helper/#line-136 你可以尝试在其中进行调试。
【解决方案2】:

我终于找到了导致错误的原因!

问题是 app_model.php 文件中的 BOM 填充,我已使用“UTF-8 without BOM”编码将文件保存在 Notepad++ 中,它解决了所有问题。

【讨论】:

    【解决方案3】:

    你试过了吗?:

    $this->Session->setFlash(__('Your message here.', true));
    

    【讨论】:

      【解决方案4】:

      您是否包含了组件和助手?
      我知道这是微不足道的,但我失败了一两次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-17
        • 2014-12-21
        • 2016-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        相关资源
        最近更新 更多