2016-09-07 2 views
2

Я пытаюсь загрузить шаблон в PhalconPHP (v 2.0.13), но даже самый простой пример, похоже, не работает. Я пытаюсь получить доступ к http://www.mysite.dev.fb/forms/ в этом примере. Вот мой маршрутизатор:Вид фалкона не загружен

$router->add(
    '/forms/', 
    [ 
      "namespace" => "Render\\Controller", 
      "controller" => "index", 
      "action" => "forms", 
    ], 
    ['GET'] 

);

Выполняется маршрутизация или, по крайней мере, код в действии (vardumps и т. Д.).

Вот мои варианты действий с контроллером.

Вариант 1

public function formsAction() 
{ 
} 

В этом случае шаблон находится в приложение/просмотров/индекса/forms.volt (У меня есть копия файла с расширением .phtml, для отладки) должны быть загружен, правильно? Неверный, отображается пустой экран, ошибок в журнале ошибок нет.

Вариант 2

Затем я попытался собирание мнение, как это:

$this->view->setViewsDir(__DIR__ . '/../views/'); 
$this->view->pick('forms/contact'); 

Файл, приложение/просмотров/формы/contact.volt, также существует, с полными правами доступа. Vardumping $ this-> view-> getContent() возвращает null, а результат - пустой белый экран без каких-либо ошибок.

Вариант 3

Отчаянно, я попытался непосредственно рендеринга шаблона (для этого примера я использую шаблон по умолчанию Phalcon индекс/индекс), как это:

$this->view->start(); 
$this->view->render('index', 'index'); //Pass a controller/action as parameters if required 
$this->view->finish(); 

Единственное отличие состоит в том, что в настоящее время vardumping $ this-> view-> getContent() возвращает пустую строку, а не null.

Это как автоматическая визуализация отключена, но следующая строка возвращает ложь (как это должно быть):

var_dump($this->view->isDisabled()); 

Я из идей, может кто-нибудь помочь? Если я забыл что-то включить, ответьте, и я включу его.

+0

Вы правильно настроили компонент вида? Это компонент моих просмотров, зарегистрированный в сервисах: http://pastebin.com/SdX121d8. Также убедитесь, что у Phalcon есть r/w-разрешение для папки кэша. Проверьте журналы PHP – Luke

+0

Я предполагаю, что 'setViewsDir (__ DIR__. '/../ views /')' не устанавливает правильный путь. Где вы регистрируете свой сервис View? В файле index.php? Если представления находятся в '/ app/views /', а ваш файл 'index' находится в'/public/index.php', путь должен быть '__DIR__. '../ приложение/просмотров /' '. –

+0

Да, что-то в определении моего двигателя Volt кажется подозрительным, я добавил строку phtml из примера Luke и, да, шаблон .phtml загружен правильно. Спасибо, я отчитаю, когда есть какое-то развитие (как положительное, так и если я снова застрял). –

ответ

1

Обязательно проверьте свои журналы PHP на ошибки PHP. Также я подозреваю, что ваша вольт-реклама может быть неправильной. Вот рабочий пример объявления компонент инъекционного вида зависимостей в услугах, которые я использую:

$di->setShared('view', function() use ($di,$config) { 
    $view = new View(); 
    $view->setViewsDir($config->application->viewsDir); // path to directory with views, loaded from config in this case 
    $view->registerEngines(array(
     '.volt' => function ($view, $di) use ($di, $config) { 
      $volt = new VoltEngine($view, $di); 
      $volt->setOptions(array(
       'compiledPath' => $config->application->cacheDir, // path to cache dir, loaded from config in this case 
       'compiledSeparator' => '_' 
      ));   
      return $volt; 
     }, 
     '.phtml' => 'Phalcon\Mvc\View\Engine\Php' 
    )); 
    return $view; 
}); 

Убедитесь, что ваш веб-сервер имеет право на чтение мнения и R/W права для каталога кэша. Надеюсь, это поможет вам

Смежные вопросы