HtmlHelper не загружен в учебном примере - PullRequest
1 голос
/ 02 февраля 2011

Я следовал руководству, чтобы создать блог для CakePHP 1.3 до на этом шаге , но постоянно получаю сообщение об ошибке при запуске приложения:

Notice (8): Undefined property: View::$Html [APP\views\posts\index.ctp, line 27]

Строка 27:

echo $this->Html->link($post['Post']['title'], array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); 

Очевидно, CakePHP не загружает класс HtmlHelper, я проверяю снова и снова в моем контроллере, HTML должен быть загружен правильно.

class PostsController extends AppController {
  var $name = 'Posts';
  var $helpers = array('Html', 'Form');

  function index() {
    $this->set('posts', $this->Post->find('all'));
  }
}

Когда я добавил эту строку в представление (index.ctp), это работает

$this->Html = &$this->loaded['html'];

Но, очевидно, я не могу сделать это для каждого файла CTP.Я использую Windows 7, WAMP 2, PHP 5.3.5, CakePHP 1.3.7 стабильный.

У кого-нибудь есть подсказка?

Ответы [ 2 ]

1 голос
/ 02 февраля 2011

Как и комментарий mtnorthrop выше:

Загружается ли FormHelper в ваших представлениях?Что вы получите, если сделаете pr ($ this-> Html) в своем представлении?Как насчет pr ($ html)?До CakePHP 1.3 доступ к помощникам осуществлялся напрямую, а не через объект View.В CakePHP 1.3 оба метода должны работать.Работают ли у вас простые методы $ html-> link () или $ form-> input ()?- mtnorthrop 51 минут назад

0 голосов
/ 02 февраля 2011

Из книги:

"HtmlHelper доступен по умолчанию во всех представлениях. Если вы получаете сообщение об ошибке, сообщающее, что его там нет, обычно это происходит из-за его имениотсутствует в настроенной вручную переменной контроллера $ helpers. "

Вам не нужно указывать ее в своих контроллерах.Возможно, как-то это мешает ядру?Кстати, вам также не нужно указывать форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...