Примечание (1024): элемент не найден: элементы \ default.ctp [CORE \ Cake \ View \ View.php, строка 425

1

Я пытаюсь создать сообщение, когда создается Тема. После того, как база данных была добавлена, она успешно перенаправлена на индекс, но не запустила сообщение, вместо этого я получил эту ошибку. Ниже мой контроллер. Я использую торт cakephp2.x, кто-то сказал мне что-то поместить на Элементы. Пожалуйста, помогите мне решить эту проблему. Спасибо заранее.

Уведомление (1024): Элемент не найден: Элементы \default.ctp [CORE\Cake\View\View.php, строка 425

 <?php
 class TopicsController extends AppController {

    public $components = array('Session');
    public function index(){

    }
    public function add(){

        if($this->request->is('post')){
            $this->Topic->create();

            if($this->Topic->save($this->request->data)){
                $this->Session->setFlash('Topic has been created!');
                $this->redirect('index');
            }
        }
    }

 }
?>
  • 0
    Пожалуйста, просто проверьте, есть ли у вас файл default.ctp внутри your_app\lib\Cake\View\Elements\Flash . Если нет, скачайте их отсюда github.com/cakephp/cakephp/tree/2.8/lib/Cake/View/Elements/… и у вас, вероятно, все будет в порядке.
  • 1
    Какая версия CakePHP (2. What) и как вы рендеринг ваших флэш-сообщений? Пожалуйста, измените вопрос, чтобы сказать / показать . Если вы используете Session->setFlash , ожидается, что вы используете Session->flash в макете
Показать ещё 3 комментария
Теги:
cakephp

4 ответа

4
Лучший ответ

Спасибо, я уже заметил, что компонент сеанса больше не используется в cakephp 2. 7+, а компонент flash должен быть заменой. поэтому я меняю свой код

 public $components = array('Session');

в

 public $components = array('Flash');

а также

 $this->Session->setFlash('Topic has been created!');

в

 $this->Flash->set('The Topic has been created!');

Всем спасибо.

  • 0
    Просто чтобы уточнить ваш комментарий: компонент сеанса все еще используется - он не был удален. Начиная с версии 2.7 из компонента Session были удалены только методы Flash.
0

Скопируйте файл default.ctp из этого каталога на свой компьютер в папку установки CakePHP

htdocs/cake/lib/Cake/View/Elements/Flash

и вставьте копию файла default.ctp за пределы папки Flash в папке Elements. в этом месте

htdocs/cake/lib/Cake/View/Elements

Это будет отлично работать. Я пробовал

0

До:

\Lib\Cake\View\Elements\Flash\default.ctp

скопировать файл default.ctp в папку "Элементы"

\Lib\Cake\View\Elements\default.ctp

Должно работать так.

-1

Для частичного представления элемента Default, включенного в Index.ctp, или через setFlash. поэтому, пожалуйста, включите элемент ctp, чтобы избежать проблем и получить ниже результата

//Будет использовать /app/Plugin/Comment/View/Elements/default.ctp

$this->Session->setFlash(
    'Example message text',
    'default',
    array('class' => 'example_class')
);

Здесь default должен быть элементом и, пожалуйста, обеспечьте доступный элемент ctp по умолчанию

Результат использования $this->Session->flash() с вышеупомянутым примером:

<div id="flashMessage" class="example_class">Example message text</div>

Чтобы использовать элемент из плагина, просто укажите плагин в параметрах $ params:

//Будет использовать /app/Plugin/Comment/View/Elements/flash_no_spam.ctp

$this->Session->setFlash(
    'Message!',
    'flash_no_spam',
    array('plugin' => 'Comment')
);

Для ссылки, пожалуйста, найдите ссылку ниже:

http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html

  • 0
    Привет, у меня уже есть debugkit на View / Elements / default.ctp я должен сделать еще один ctp внутри элементов?
  • 0
    @FatalError: Конечно, вы можете использовать другой элемент ctp, как упомянуто выше, как 'flash_no_spam' вместо ctp по умолчанию.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню