1

我有一个模块-> 用户。

->modules
    ->users
        ->controllers
        ->models
        ->views
        ->Users.php

我在“用户”模块的“配置”文件夹中创建了一个“config.php”。

->modules
    ->users
        ->config
            ->config.php
        ->controllers
            -> List of Controllers
        ->models
            -> List of models
        ->views
            -> List of Views
        ->Users.php

而且,我在 Users.php 的 init() 方法中给出了 config.php 的目录路径,如

模块/用户/Users.php

<?php

namespace app\modules\users;

class Users extends \yii\base\Module
{
    public $controllerNamespace = 'app\modules\users\controllers';
    public $commonModel = 'app\modules\users\models\Users';

    public function init()
    {
        parent::init();
        \Yii::configure($this,require(__DIR__.'/config/config.php'));
    }
}

但是,它给出了类似的错误

PHP 警告 – yii\base\ErrorException
“为 foreach() 提供的参数无效”。

截屏

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我从Yii2.0 指南中引用了在 init() 方法中包含路径。

请帮我纠正这个问题。

谢谢。

4

3 回答 3

2

问题来自配置文件。配置文件必须返回一个数组。确保配置文件如下:

<?php

$config = [
    'name1' => 'value1',
    'name2' => [/* something here */],
];

return $config;
于 2015-10-19T13:20:13.667 回答
2

从我所见,您将 PHP 代码传递到配置文件,而不是传递配置数组

而不是这个...

\Yii::configure($this, require(__DIR__.'/config/config.php'));

尝试这样做...

$config = require(__DIR__.'/config/config.php');
\Yii::configure($this, $config);

在您的config.php文件中,您应该返回一个数组,如果您使用的是 basic-app 配置文件并添加到该文件中,那么它应该已经像这样设置

于 2015-10-19T12:51:00.980 回答
1

您编辑文件模型并删除代码:

/**
 * @inheritdoc
 * @return DriverSearch the active query used by this AR class.
 */
public static function find()
{
    return new DriverSearch(get_called_class());
}
于 2018-03-01T02:31:22.900 回答