问题描述
我正在使用 cakPHP4。我有一个关于 cakePHP 和 Sweet Alert 的问题。我们可以用sweetalert 替换标准的Flash 消息吗? (我的意思是不是标准的 Flash Message,而是给 Sweet Alert?)
UsersController.PHP
public function delete($slug)
{
$this->request->allowMethod(['post','delete']);
$user = $this->Users->findBySlug($slug)->firstorFail();
if ($this->Users->delete($user)) {
$this->Flash->success("Deleted Successfully");
return $this->redirect(['action' => 'index']);
}
$this->Flash->error('Unable to Delete user');
return $this->redirect(['action' => 'index']);
}
模板/元素/flash/success.PHP
<?PHP
if (!isset($params['escape']) || $params['escape'] !== false) {
$message = h($message);
}
?>
<div class="message success" onclick="this.classList.add('hidden')">
<?= $message ?></div>
解决方法
您可以查看 Flash component 的文档。您要更改的部分是您将在 templates/element/flash
中找到的模板:
// Uses templates/element/flash/success.php
$this->Flash->success('This was successful');
// Uses templates/element/flash/great_success.php
$this->Flash->greatSuccess('This was greatly successful');
,
您有此订单项
<?= $this->Flash->render() ?>
在默认布局中,显示每条 Flash 消息(基于上面回答中提到的模板)。
您可以获取结果并将其用作 sweetalert 的输入,而不是回显它。
<?php $inputForSweetAlert = $this->Flash->render(); ?>
答案未经测试。