CakePHP 3.6.14:以引导模式渲染视图(.ctp)

时间:2019-03-03 08:26:23

标签: php cakephp bootstrap-modal

是否可以在bootstrap modal中显示视图(例如,add.ctp)?如果可以,是否可以仅在add.ctp文件中呈现html而不加载默认布局?

因为当前我正在尝试构建与add.ctp文件中的表单类似的自定义表单,以便在模式中显示该表单,而尝试发布并获取json对象以便提交该表单确实很麻烦在我的应用程序中形成并填充网格。

1 个答案:

答案 0 :(得分:2)

是的。

在Ajax文件夹中创建add.ctp,例如:

/Posts
  index.ctp
  /Ajax
  add.ctp

在Postings :: add()中设置Ajax布局,并使用js获取/ posts / add并呈现模式。

阅读:

https://book.cakephp.org/3.0/en/controllers/components/request-handling.html https://book.cakephp.org/3.0/en/views.html#layouts

编辑:

在控制器中

public function add()
{
   // your code here ...
   if ($this->getRequest()->is('ajax')) {
       // render "add" view in Ajax folder and use "ajax" Layout
       $this->render('Ajax/add', 'ajax')
   }
}

https://book.cakephp.org/3.0/en/controllers.html#rendering-a-specific-template

EDIT 2(jQuery部分)示例

<button type="button" data-toggle="modal" data-remote="<= $this->Url->build(/* ADD HERE YOUR PARAMS*/) 
 ?>" data-target="#myModel">Open Model</button>

$('body').on('click', '[data-toggle="modal"]', function(){
        $($(this).data("target")+' .modal-body').load($(this).data("remote"));
    });