У меня есть ошибка:
<?php $this->Auth->loginError = "No, you fool! That's not the right password!"; ?>
Но у меня есть пользовательский элемент flash. Как я могу это использовать? и как я передаю дополнительную информацию, как в приведенном ниже примере.
Пример вспышки:
$this->Session->setFlash('Your settings have been updated', 'flash', array('myclass' => 'success'));
Пользовательский элемент flash:
<div id="flashMessage" class="message<?php if(isset($myclass)) { echo ' ' . $myclass; } ?>"> <div class="content"> <?php if(isset($header)) { echo '<h3>' . $header . '</h3>'; } ?> <p><?php echo $message; ?></p> </div> </div>
Это может быть старым, но у меня была аналогичная проблема, и я решил ее, назначив макет полю поля элемента AuthComponent flashElement ;
$this->Auth->flashElement = 'custom_flash';
См. Customn auth flash.
Это работает для меня:
$this->Auth->flash['element'] = 'flash/auth';
будет использовать элемент te в
Приложение / View / Elements / вспышка / auth.ctp
«Аутентификация – CakePHP Cookbook v2.x documentation»
Это уже 3 года, но вот полный ответ. В вашем приложении AppController в методе beforeFilter используйте следующее:
$this->Auth->flash = array( 'element' => 'flash', 'key' => 'auth', 'params' => array( 'myclass' => 'your auth message class', 'header' => 'your auth message header', ) );
Как предложено в CookBook
Много лет спустя, но это может помочь некоторым. Вы можете установить элемент в AppController следующим образом:
class AppController extends Controller { public $components = [ 'Auth' => [ 'flash' => ['element' => 'auth'], ], ]; }
метод Session-> setFlash записывает сообщение в переменную $ session, доступную в представлениях cakephp. в вашем элементе вам нужно будет сделать что-то вроде этого:
<?php echo $session->read('Message.flash.message')?>
Посмотрите на setFlash api . Вы можете добавить дополнительные параметры.
Если вам нужно увидеть результат, попробуйте:
<?php debug($session->read('Message.flash')?>
Это покажет вам флэш-массив с сообщением и другими связанными данными, которые затем можно использовать в вашем пользовательском обработчике.