Сообщение об ошибке при использовании HtmlHelper с CakePHP - PullRequest
3 голосов
/ 12 января 2011

Абсолютно новый пользователь CakePHP; я только что установил и запустил несколько часов назад (или так я думал). Я пробежался по блогу , и все шло гладко, пока я не попал в раздел «Добавление сообщений». Я подумал, что, возможно, где-то сделал опечатку, поэтому я скопировал и вставил код прямо из учебника, и я все еще получаю эти ошибки, когда пытаюсь перейти в localhost / cakeBlogTest / posts / add. Может кто-нибудь мне помочь? Я установил самую последнюю стабильную версию CakePHP.

Предупреждение (512): Метод HtmlHelper :: input не существует [CORE / cake / libs / view / helper.php, строка 143]

Предупреждение (512): метод HtmlHelper :: tagErrorMsg не существует [CORE / cake / libs / view / helper.php, строка 143]

Предупреждение (512): Метод HtmlHelper :: textarea не существует [CORE / cake / libs / view / helper.php, строка 143]

Предупреждение (512): Метод HtmlHelper :: submit не существует [CORE / cake / libs / view / helper.php, строка 143]

ИЗМЕНЕНО В ДОБАВИТЬ:

Мне удалось использовать ссылку $ html-> в другом разделе учебника, так что, похоже, он находит файл помощников. Я только что посмотрел на вспомогательный файл, и input, textarea и submit действительно существуют, но tagErrorMsg - нет. Возможно ли, что учебник устарел и использует биты, которых больше нет в текущей версии CakePHP? И если да, что я использую вместо tagErrorMsg?

БОЛЬШЕ ДОПОЛНЕНИЙ:

Копирование кода / вставлено непосредственно из учебника:

<h1>Add Post</h1>
<form method="post" action="<?php echo $html->url('/posts/add')?>">
    <p>
        Title:
        <?php echo $html->input('Post/title', array('size' => '40'))?>
        <?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?>
    </p>
    <p>
        Body:
        <?php echo $html->textarea('Post/body', array('rows'=>'10')) ?>
        <?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?>
    </p>
    <p>
        <?php echo $html->submit('Save') ?>
    </p>
</form>

Ответы [ 2 ]

4 голосов
/ 12 января 2011

input, textarea, submit являются не функциями HtmlHelper, они принадлежат FormHelper

В ваших представлениях вы должны использовать $this->Form->input('test') вместо$this->Html->input('test')

Этот урок относится к cakephp v1.1 (явно устарел)

Изучите последний урок cakePHP v1.3

0 голосов
/ 28 ноября 2012

Теперь функция tagErrorMsg заменена на tagIsInvalid, и теперь она находится в классе «FormHelper», но до этого она была в классе HtmlHelper. Теперь мы должны использовать ее как-> $ this-> Form-> tagIsInvalid () или $ form-> tagIsInvalid () И НЕ НРАВИТСЯ $ this-> Html-> tagIsInvalid ()

...