1

私はかなり長い間 PyroCMS と CI を使用しており、本当に気に入っています。

管理者ユーザーが phpMyAdmin などを使用せずに DB を管理できるようにする DB モジュールを拡張しています。

ただし、機能することができた唯一のことは、テーブルのフィールド値を参照することです (つまり、'SELECT * FROM 'table_name')。

より多くの機能を組み込みたいのですが、dbforge が正しく動作しないようです。dbforge を使用してモジュールをアンインストールするため、ロードされていることがわかります。そこから関数を呼び出してもエラーは発生しません。

コントローラーからのコードの例を次に示します (dbforge は既に読み込まれています)。

public function drop($table_name)
{
    $table_name = $this->uri->segment(4);
    $this->dbforge->drop_table($table_name);
    redirect('admin/database/tables');
}

関数がこの URL から呼び出されるとしましょう:

.../admin/database/drop/table_name

動作しているように見えますが、代わりにテーブルの概要にリダイレクトするだけです。

足りないものはありますか?[$this->dbforge->drop_table($table_name);] は常にテーブルを削除すべきではありませんか ($table_name が有効な場合)?

編集

回避策として、次を使用できました。

public function drop($table_name)
{
    $table_name = $this->uri->segment(4);
    //$this->dbforge->drop_table($table_name);
    $this->db->query("DROP TABLE ".$table_name);
    redirect('admin/database/tables');
    return TRUE;
}

本当はDB forgeを使いたいのですが...

4

1 に答える 1

2

PyroCMS 1.3.x のサイト プレフィックスに少し混乱しているかもしれません。

デフォルトでは、Community および Professional のすべてのインストールで、最初のサイトのすべてのテーブルのプレフィックスとして default_ が付けられます。Professional を使用している場合は、新しいサイトを追加できます。サイト参照は、default_ ではなく、whatever_ になります。

この接頭辞は dbforge によって考慮されるため、default_blog を削除する場合は次のように削除します:

/管理者/データベース/ドロップ/ブログ

また、なぜ $table_name を引数として受け入れ、それを uri セグメントで上書きするのですか?

また、なぜ $table_name を引数として受け入れ、それを uri セグメントで上書きするのですか?

私がそこで何をしたか見てください。xD

public function drop($table_name)
{
    $this->dbforge->drop_table($table_name);
    redirect('admin/database/tables');
}
于 2011-10-18T23:41:29.980 に答える