Получение ошибки при использовании пользовательского Представления класса:
Требование: Я хочу разделить некоторые из моих входов представления в другой класс представления, но также я хочурасширить класс AppView.php, предоставляемый CakePHP по умолчанию.
Проблема: Когда я добавляю этот класс представления в функцию действия моего контроллера, все вызовы ajax переходят в src/Template/My/ajax/action.ctp
до этого, когдаЯ не добавлял пользовательский класс представления в действие, он пытался найти шаблон в src/Template/My/action.ctp
, который является желаемым путем ctp.
Вот код, который я использовал:
MyController.php
public function action()
{
# When I comment below line, everything works properly
$this->viewBuilder()->setClassName(\App\View\MultiFormatView::class);
# code ...
}
MultiFormatView.php
<?php
namespace App\View;
use Cake\View\View;
class MultiFormatView extends AppView
{
/**
* Returns class for multiple document formats
*
* @param string $filename Filename to get class for.
* @return string
*/
public function getFormatIconClass($filename)
{
$fileinfo = pathinfo($filename);
return sprintf('file-%s', $fileinfo['extension']);
}
}
Любое решение для этого?
Заранее спасибо.