我想在Cakephp 3中给Flash消息一个自定义的css类,我的(在这种情况下是编辑)控制器中有我的函数:
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 :(得分:2)
它不起作用,因为它不是应该如何工作的。不要只是投入一些东西并希望最好,请先阅读文档,弄清楚要做些什么!
根本没有class
选项。
<强> Cookbook > Controllers > Components > Flash > Setting Flash Messages 强>
如果要为成功Flash消息设置特定类,则必须修改src/Template/Element/Flash/success.ctp
中的flash消息元素,类似于链接文档中所示。
如果要在控制器级别定义内容,可以使用params
选项传递自定义选项并在元素中使用它们。
答案 1 :(得分: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>
答案 2 :(得分:0)
我想你想要使用boostrap类加载警告
如果自定义成功的Flash消息,您应该转到 src / Template / Flash / success.ctp
并添加您的课程
<div class="alert alert-success" onclick="this.classList.add('hidden')">
<strong><?= __('Success') ?>!</strong> <?= h($message) ?>
</div>
答案 3 :(得分:0)
这个适用于我。
转到 src / Template / Element /
创建名为“ Flash ”的目录文件
将 success.ctp 和 error.ctp 模板放在该目录文件中。
因此,您在目录 src / Template / Element / Flash /
将此脚本放入 src / Template / Element / Flash / success.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 / Element / Flash / error.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>
然后,在控制器
中添加此Flash脚本功能$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() ?>
不要忘记先在AppController.php中加载FlashComponent。
更多细节设置位于this页面。看看吧。