В yii у меня был такой код, который качался ОК

$form=$this->beginWidget('CActiveForm', array(
    'id'=>'ride-form',
    'enableClientValidation'=>false,
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
    ),
));

Теперь я пытаюсь использовать его в версии Yii 2. Но я получаю ошибку

Calling unknown method: yii\web\View::beginWidget()

Почему ? и какой класс мне следует дополнительно использовать для решения этой проблемы?

2
David 18 Дек 2014 в 16:02

2 ответа

Лучший ответ

Эта ошибка возникает из-за того, что класс yii\web\View просто не имеет метода beginWidget().

Для работы с формами в Yii2 используйте виджет ActiveForm.

Замените свой код на:

use yii\widgets\ActiveForm;    

$form = ActiveForm::begin([
    'id' => 'ride-form',
    'enableClientValidation'=>false,
    'validateOnSubmit' => true, // this is redundant because it's true by default
]);

// ...

ActiveForm::end();
1
arogachev 18 Дек 2014 в 16:20

2 вещи, которые я бы проверил, если метод неизвестен.

1) включен ли класс до того, как вы его вызовете?

2) Вы создаете экземпляр класса и вызываете класс из этой переменной экземпляра?

include 'myClass.php';

$class = new myClassName();

$class->method();
0
Roger 18 Дек 2014 в 16:07