1

我想制作一个通用的 CActiveRecord 可以与任何表一起操作。我添加了一个班级成员$table并覆盖tableName()

public function tableName()
{

    return $this->table;

}

在最后一步中,我覆盖了 c-tor:

public function __construct($table , $scenario = 'insert')
{

    $this->table = $table;
    parent::__construct($scenario);

}

CActiveRecord 的 c-tor 调用 atableName()所以我们必须在调用它之前定义表名。

我很确定这会正常工作,但是404 Not Found在尝试创建我的类的实例时我得到了一个:

$foo = new Foo('table_foo');

Yii 没有显示错误,php 也没有,只是 404 错误...如果我删除此行,应用程序将完美运行...

4

1 回答 1

1

如果你有 nginx 404 这不是yii 问题。检查你的重写规则。也许,当您遇到应用程序错误时,会发生一些导致 404 的重定向?

另外我认为你不应该像那样过度使用 ctor。您在开始时将参数添加到 ctor,因此一些 yii 内部实例可能会insert作为第一个参数传递,在您的情况下它将作为表名!

于 2013-02-05T17:50:53.467 回答