2016-05-06 13 views
0

Я хочу дать быстрое сообщение пользовательский класс CSS в CakePHP 3, есть моя функция в моем (редактировать в данном случае) контроллер:Как дать моментальное сообщение пользовательский класс CSS в торт 3

public function edit($id = null) 
{ 
    $this->viewBuilder()->layout('personalizado'); 
    $user = $this->Users->get($id, [ 
     'contain' => [] 
    ]); 
    if ($this->request->is(['patch', 'post', 'put'])) { 
     $user = $this->Users->patchEntity($user, $this->request->data); 
     if ($this->Users->save($user)) { 
      $this->Flash->success('Utilizador editado com sucesso.', 'default', ['class' => 'alert alert-success']); 
      return $this->redirect(['action' => 'index']); 
     } else { 
      $this->Flash->error(__('Erro ao apagar utilizador, por favor tente de novo.')); 
     } 
    } 
    $this->set(compact('user')); 
    $this->set('_serialize', ['user']); 
} 

Я добавил пользовательский CSS в этой Claas линии:

$this->Flash->success('Utilizador editado com sucesso.', 'default', ['class' => 'alert alert-success']); 

, но не работает, спасибо заранее.

+0

"_doesn't work_" не является надлежащим описанием проблемы! Даже если проблема может быть очевидна для людей, знакомых с внутренними компонентами CakePHP, всегда будьте как можно более конкретными, чем то, что происходит _exactly_, и что вы ожидаете вместо этого. Покажите данные, с которыми работаете, контекст, ваши попытки отладки и возможные ошибки. Часто проблема решает сам при сборе этой информации. – ndm

+0

Спасибо за ваше объяснение, в следующий раз я буду более конкретным, в этом случае класс css не загружен, я попробую ответы ниже. –

ответ

2
// In your Controller 
$this->Flash->success('The user has been saved', [ 
    'params' => [ 
     'class' => 'alert alert-success' 
    ] 
]); 

// In your View 
<?= $this->Flash->render() ?> 

<!-- In src/Template/Element/Flash/success.ctp --> 
<div class="<?= h($params['class']) ?>"> 
    <?= h($message) ?> 
</div> 
+1

Спасибо за ваш вклад, его работа, как я хочу ... –

2

Это не работает, потому что это не так, как должно работать. Не просто бросать вещи и надеяться на лучшее, сначала прочитайте документацию, чтобы выяснить, как все должно быть сделано!

Существует просто class вариант.

Cookbook > Controllers > Components > Flash > Setting Flash Messages

Если вы хотите установить определенный класс для сообщения об успешном завершении вспышки, то вы должны изменить элемент флэша-сообщение, которое живет в src/Template/Element/Flash/success.ctp, подобный, как показано в связанной документации.

Вы можете использовать опцию params для передачи пользовательских параметров и использования их в своих элементах, если вы хотите определить вещи на уровне контроллера.

+0

Спасибо за ваш вклад, в следующий раз я сделаю упомянутый вами персонал. –

0

I'm предположим, что вы хотите, предупреждение нагрузки с boostrap класса

If customizate успех флэш-сообщение, вы должны перейти к SRC/Template/Flash/success.ctp

и добавить свои классы

<div class="alert alert-success" onclick="this.classList.add('hidden')"> 
    <strong><?= __('Success') ?>!</strong> <?= h($message) ?> 
</div> 
0

Этот продукт работает для меня.

Перейти к SRC/Template/Элемент/
Создать файл каталога под названием "флэш"
Поместите ваш success.ctp и error.ctp шаблон в этом файле каталога.
Так у вас есть 2 файлов, называемых success.ctp и error.ctp в каталоге SRC/Template/элемент/Flash/

поместить этот скрипт в Src/Template/элемент/Flash/успехе .ctp

<div class="alert alert-success alert-dismissable" role="alert"> 
    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
    <?= strip_tags($message, '<br>') ?> 
</div> 

также поместить этот скрипт в Src/Template/элемент/Flash/ошибка.CTP

<div class="alert alert-danger alert-dismissable" role="alert"> 
    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
    <?= strip_tags($message, '<br>') ?> 
</div> 

И затем, добавьте эту функцию сценария вспышку в контроллер

$this->Flash->error(__("Your error message")); 
return $this->redirect(['action' => 'index']); 

для флэш ошибка сообщения или это пыльник

$this->Flash->success(__("Your successed message")); 
return $this->redirect(['action' => 'index']); 

для В случае успешного флэш-сообщения.
Тогда в вашем view.ctp добавить пыльник

<?= $this->Flash->render() ?> 

Донта этот скрипт забудьте загрузить FlashComponent в вашем AppController.php первым.

Более подробная информация находится на странице this. Проверьте это.

 Смежные вопросы

  • Нет связанных вопросов^_^