gpt4 book ai didi

使用 Gii 的 Yii 模块代码生成问题

转载 作者:行者123 更新时间:2023-12-04 03:09:58 27 4
gpt4 key购买 nike

我刚刚使用 Gii 生成了一个名为 gig 的新模块。使用 Gii 生成模块代码后,我更新了 config/main.php 文件以包含“gig”模块,如下所示:

'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.*',
),

'modules'=>array(
// uncomment the following to enable the Gii tool

'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'secretpassword',
),
'gig',
),

现在,当我尝试在浏览器中访问自动生成的 Yii 模块代码时,如下所示:

http://localhost/gig/default/index/

我收到以下错误:

DefaultController 找不到请求的 View “索引”。

为了解决这个问题,我更改了模块的 DefaultController.php 中的渲染代码:

$this->render('index');

为此:

$this->render('gig.views.default.index');

此更改解决了问题,但我想知道我是否遗漏了什么或者 Gii 是否正在为模块生成错误代码?以前有人遇到过这个问题吗?我的解决方案正确吗?

现在 Controller 可以找到 View 了,我重新加载了页面,只显示了这个错误信息:

试图获取非对象的属性

原来是index.php View 文件中的以下代码有问题:

$this->breadcrumbs=array(
$this->module->id,
);

我不确定为什么会这样。我尝试将上面的代码更改为以下内容:

$this->breadcrumbs=array(
Yii::app()->controller->module->id,
);

但这仍然给我相同的错误消息,“试图获取非对象的属性”。

知道哪里出了问题吗?设置模块代码时我遗漏了什么吗?我正在使用 Yii 1.1.7

谢谢!

最佳答案

抱歉,这是我们自己的愚蠢错误。我们的一位程序员向 Controller 类添加了一个 __construct 方法,但忘记在该方法中包含 $module 变量,如下所示:

public function __construct($id='site')
{
parent::__construct($id);

//custom code here
}

如下所示添加 $module 变量后,现在一切正常。

public function __construct($id='site', $module = null)
{
parent::__construct($id, $module);
}

关于使用 Gii 的 Yii 模块代码生成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com