我從CakePHP的2.x的移動把CakePHP 3.XCakePHP的3.X非默認視圖文件擴展名
在CakePHP 2.x中,在我的ApiController我可以做這樣的事情:
public function getScript(){
$this->layout = 'empty';
$this->ext = '.js';
}
上面的代碼會呈現以下幾種觀點:
查看/原料藥/ get_script.js (請注意擴展名爲.js)
如何使用CakePhp 3.x實現相同的行爲?
我的文檔閱讀:
The Controller::$ext property has been removed. You now have to extend and override the View::$_ext property if you want to use a non-default view file extension.
但我不知道如何以及在何處延伸查看:: $ _分機財產
我試過如下:
我在中創建了一個新的View類src/View/ApiView.php
namespace App\View;
use Cake\View\View;
class ApiView extends View
{
protected $_ext = '.js';
}
而且在我的控制器:
public function getScript(){
$this->viewClass='Api';
$this->layout = 'ajax';
}
但現在我得到以下錯誤:
Error: The layout file Layout/ajax.js can not be found or does not exist.
這非常有意義,因爲我告訴CakePHP中使用的.js作爲默認的擴展名。但是我想爲模板視圖使用.ctp擴展名和.js擴展名。
在CakePHP 2.x中這麼簡單我相信CakePHP3.x中也必須有一個簡單的解決方案..請大家幫忙!
謝謝
這意味着通過創建'WhateverView' - 並使用該類。 – AD7six
這就是我想要做的..但我不能覆蓋_ext屬性(它不起作用),我需要一些示例代碼 – Franz
如果你有一些示例代碼把它放在問題 - 這似乎不太可能你'按照說明書的建議去做。 – AD7six