CakePHP 3.x - viewBuilding () -> setLayout ('blank') не работает - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь установить макет в blank.ctp, но он не работает, я создал blank.ctp в src / Template / Layout, но следующий код не работает, так как в файле blank.ctp нетпоказано, что по умолчанию используется макет.

public function delete($id = null)
{
    $this->request->allowMethod(['get']);
    $this->loadModel('AdminLTETasks');
    $adminLTETask = $this->AdminLTETasks->get($id);
    if ($this->AdminLTETasks->delete($adminLTETask)) {
        echo 'The admin l t e task has been deleted.';
    } else {
        echo 'The admin l t e task could not be deleted. Please, try again.';
    }

    $this->viewBuilder()->setLayout('blank');
}

Я также пробовал устаревший макет метода («пустой»), и он также не работает

public function delete($id = null)
{
    $this->request->allowMethod(['get']);
    $this->loadModel('AdminLTETasks');
    $adminLTETask = $this->AdminLTETasks->get($id);
    if($adminLTETask->user_id == $this->Auth->user('id')) {
        if ($this->AdminLTETasks->delete($adminLTETask)) {
            echo 'The admin l t e task has been deleted.';
        } else {
            echo 'The admin l t e task could not be deleted. Please, try again.';
        }
    }

    $this->viewBuilder()->layout('blank');
}

1 Ответ

0 голосов
/ 26 октября 2019

попробуйте это, если у вас есть мульти макет. И если вы хотите, чтобы он был пустым в первый раз (не стилизация и т. Д.)

Это пример контроллера, который вы должны очистить или назначить новый макет. Класс FrontsController расширяет AppController {public $ title;

public function initialize()
{
    parent::initialize();
    $this->Auth->allow(['index']);
    $this->viewBuilder()->layout('frontend');
}

public function index() {

}

}

И этот пример вашего макета frontend.ctp.

<!DOCTYPE html>
<html lang="en">
 <head>
     <?= $this->element('Fronts/head') ?>
 </head>
 <body>
   <?= $this->element('Fronts/header') ?>
     <!-- Page Content -->
    <div id="content" class="container">
      <?= $this->Flash->render() ?>
      <div class="row">
        <?= ($this->request->getParam('action') == 'index') ? 'LIST' : strtoupper($this->request->getParam('action')); ?>
        <?= $this->fetch('content') ?>
      </div>
    </div>
     <?= $this->element('Fronts/footer') ?>
 </body>
</html>
...