2014-11-16 2 views
2

я получаю эту ошибку при попытке создать новый элемент формы:Ошибка при создании новых элементов формы в Phalcon

Декларация Phalcon \ Forms \ FileUpload :: Render() должна быть совместима с Phalcon \ Forms \ ElementInterface :: визуализации()

Это мой код:

namespace Phalcon\Forms; 

class FileUpload extends Element implements ElementInterface 
{ 
    public function __construct(string $name, $options, array $attributes) 
    { 

    } 

    public function render(array $attributes) 
    { 
     return 'my form element html'; 
    } 
} 

Я перепробовал все другое обозначение параметров в этой точке, но я все еще получаю ту же ERRO р.

Так что мне интересно, возможно ли вообще создать такие элементы формы, как это в Phalcon, или это просто что-то, что я пропустил в документации.

http://phalcon.agent-j.ru/en/1.3.0/Phalcon/Forms/Element/
http://docs.phalconphp.com/en/latest/api/Phalcon_Forms_ElementInterface.html

Я использую версию 1.3.2

ответ

1

В документации Phalcon это protoytype определяется:

abstract public string render (array $attributes=?); 

Так я изменил код так:

public function render($attributes = false) 
{ 
    return 'my form element html'; 
} 

я просто не знакомы с =? нотации.

0

Вы используете Phalcon 2 правильно ?! В этой версии подписей следует придерживаться более строго. У меня тоже есть куча ошибок, подобных этой, когда я переключился на Phalcon 2, но, к счастью, эта версия написана Zephir, что облегчает чтение исходного кода.

Как вы можете видеть в определении ElementInterface, подписи не очень согласованы, но мы можем легко видеть, что render() имеет только один параметр без подсказки типа array. Просто удалите тип array из вашей реализации интерфейса в соответствии с текущей подписью.

+0

Получается, что я что-то забыл, спасибо за ваше время. Я опубликовал свои выводы. – flyingwithphalcon

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