Я пытаюсь создать сообщение, когда создается Тема. После того, как база данных была добавлена, она успешно перенаправлена на индекс, но не запустила сообщение, вместо этого я получил эту ошибку. Ниже мой контроллер. Я использую торт 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');
}
}
}
}
?>
Спасибо, я уже заметил, что компонент сеанса больше не используется в 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!');
Всем спасибо.
Скопируйте файл default.ctp
из этого каталога на свой компьютер в папку установки CakePHP
htdocs/cake/lib/Cake/View/Elements/Flash
и вставьте копию файла default.ctp
за пределы папки Flash в папке Elements. в этом месте
htdocs/cake/lib/Cake/View/Elements
Это будет отлично работать. Я пробовал
До:
\Lib\Cake\View\Elements\Flash\default.ctp
скопировать файл default.ctp в папку "Элементы"
\Lib\Cake\View\Elements\default.ctp
Должно работать так.
Для частичного представления элемента 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
your_app\lib\Cake\View\Elements\Flash
. Если нет, скачайте их отсюда github.com/cakephp/cakephp/tree/2.8/lib/Cake/View/Elements/… и у вас, вероятно, все будет в порядке.Session->setFlash
, ожидается, что вы используетеSession->flash
в макете