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はaを呼び出すtableName()ため、呼び出す前にテーブル名を定義する必要があります。

これでうまくいくと確信してい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 に答える