蛋糕3中如何给Flash消息自定义cssclass
How to give Flash message a custom css class in cake 3
我想在 Cakephp 3 中为 Flash 消息提供自定义 css class,在我的(在本例中为编辑)控制器中有我的功能:
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 类:
$this->Flash->success('Utilizador editado com sucesso.', 'default', ['class' => 'alert alert-success']);
但无法正常工作,在此先感谢。
它不起作用,因为它不应该这样工作。不要只是乱扔东西并抱有最好的希望,请先阅读文档以弄清楚事情是如何完成的!
根本就没有class
选项。
Cookbook > Controllers > Components > Flash > Setting Flash Messages
如果您想为成功的闪现消息设置一个特定的 class,那么您必须修改 src/Template/Element/Flash/success.ctp
中的闪现消息元素,类似于链接文档中所示。
如果您想在控制器级别定义内容,可以使用 params
选项传递自定义选项并在您的元素中使用它们。
// 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>
我想你想用引导程序加载警报 class
如果定制成功闪现消息你应该去src/Template/Flash/success.ctp
并添加您的 classes
<div class="alert alert-success" onclick="this.classList.add('hidden')">
<strong><?= __('Success') ?>!</strong> <?= h($message) ?>
</div>
这个适合我。
转到src/Template/Element/
创建名为“Flash”的目录文件
将 success.ctp 和 error.ctp 模板放入该目录文件中。
因此,目录 src/Template/Element/ 中有 2 个名为 success.ctp 和 error.ctp 的文件快闪/
将此脚本放入您的 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>
接下来,在您的 Controller
中添加此 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页面。看看吧。
我想在 Cakephp 3 中为 Flash 消息提供自定义 css class,在我的(在本例中为编辑)控制器中有我的功能:
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 类:
$this->Flash->success('Utilizador editado com sucesso.', 'default', ['class' => 'alert alert-success']);
但无法正常工作,在此先感谢。
它不起作用,因为它不应该这样工作。不要只是乱扔东西并抱有最好的希望,请先阅读文档以弄清楚事情是如何完成的!
根本就没有class
选项。
Cookbook > Controllers > Components > Flash > Setting Flash Messages
如果您想为成功的闪现消息设置一个特定的 class,那么您必须修改 src/Template/Element/Flash/success.ctp
中的闪现消息元素,类似于链接文档中所示。
如果您想在控制器级别定义内容,可以使用 params
选项传递自定义选项并在您的元素中使用它们。
// 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>
我想你想用引导程序加载警报 class
如果定制成功闪现消息你应该去src/Template/Flash/success.ctp
并添加您的 classes
<div class="alert alert-success" onclick="this.classList.add('hidden')">
<strong><?= __('Success') ?>!</strong> <?= h($message) ?>
</div>
这个适合我。
转到src/Template/Element/
创建名为“Flash”的目录文件
将 success.ctp 和 error.ctp 模板放入该目录文件中。
因此,目录 src/Template/Element/ 中有 2 个名为 success.ctp 和 error.ctp 的文件快闪/
将此脚本放入您的 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>
接下来,在您的 Controller
中添加此 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页面。看看吧。