Yii2使用ActiveForm进行搜索

时间:2016-04-12 08:38:17

标签: php activerecord yii2 active-form

昨天我遇到了Yii2的ActiveForm问题。我正在为我的网站构建一个搜索表单但是当我加载列出所有车辆的页面(这里发生搜索表单)时,它会抛出调用成员函数formName()on null 异常。首先我改变了DataProvider以使用$ model,$ dataProvider一直返回NULL。当我转储在$ model中返回的数据时,我可以看到存储在表中的所有数据。 (到现在为止还挺好) 我的目标是打印例如UserGroups作为搜索条件。

您如何看待,可能是什么问题?很明显,ActiveForm没有获得任何非空的相关数据源,但正如我写的那样,我在$ model中得到了数据。

控制器文件:

/**
     * Aktív gépkocsik listázása
     * @return string
     */
    public function actionIndex() {
        $this->vanJogosultag(Url::current(), self::VIEW);
        $dataProvider = new ActiveDataProvider([
            'query' => Gepkocsi::find(),
        ]);

        $model = Gepkocsi::find()->all();

        return $this->render('lista', array('dataProvider' => $dataProvider, 'model' => $model));
}

_search.php(部分用于搜索表单)

<!-- Gépkocsi felhasználói csoport -->
        <div class="offset col-xs-8 col-xs-offset-2">
            <?= $form->field($model['rendszam'], 'rendszam')->textInput() ?>
        </div>

查看我将部分包含在列表视图中的文件

<?= $this->render('_search', [
        'model' => $model
    ]); ?>

感谢您的回答!祝你有愉快的一天!

的Gabor

2 个答案:

答案 0 :(得分:0)

为什么不更改数据提供程序查询以按模型搜索所有项目?

$dataProvider = new ActiveDataProvider([
    'query' => Gepkocsi::find()->all(),
]);

答案 1 :(得分:0)

好的,我找到了解决问题的方法。这完全是我的错。解决方案是简单地创建一个Gepkocsi模型的新实例并将其传递给部分并且它可以工作。感谢您的回答和努力!