【问题标题】:Using modal in CakePHP3 (or: Javascript in Controllers)在 CakePHP3 中使用模态(或:控制器中的 Javascript)
【发布时间】:2017-07-18 15:22:19
【问题描述】:

我有一个标准表格,通过 cake/bake 生成。

发送表单时,我的控制器会检查一个(微不足道的)条件,

  • 在条件 A 上它只是保存数据 (patchEntity($foo, $this->request->getData())
  • 在条件 B 上它应该调用一个 JS 警告,然后保存数据。

我最喜欢的警告是 Bootstrap4 模态,但是如何在控制器中调用模态? 我知道这种违反MVC的想法。因此,欢迎替代想法。

我看到 atm 的唯一解决方案是我重定向到一个新操作,它只打开一个模式。

【问题讨论】:

    标签: javascript cakephp model-view-controller bootstrap-modal cakephp-3.0


    【解决方案1】:

    鉴于只能在服务器端评估条件,例如,您可以在发送表单之前或发送表单本身发出 AJAX 请求,然后使用您可以评估的相应信息进行响应AJAX 响应处理程序来决定是否需要显示模式。

    然后您可能应该(重新)发送带有附加标志的表单,该标志表明连续请求源于警告对话框,并且您可以继续保存数据。

    【讨论】:

      【解决方案2】:

      使用 flash 组件有什么问题,像这样:-

      $this->Flash->error(__('This is the warning.'));
      

      记得在你的控制器的初始化函数中添加$this->loadComponent('Flash');,像这样:-

      class ArticlesController extends AppController{
      
          public function initialize(){
      
              parent::initialize();
              $this->loadComponent('Flash'); // Include the FlashComponent
          }
      
          // Rest of your code here...
      }
      

      【讨论】:

        猜你喜欢
        • 2016-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多