如何在cakePHP中使用sweetalert

问题描述

我正在使用 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(); ?>

答案未经测试。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...