0

モジュールのクラスフォルダーにモデルがあります:

public static $definition = array(
    'table' => 'myTable',
    'primary' => 'id',
    'multilang' => false,
    'fields' => array(
        'day' => array('type' => self::TYPE_INT, 'required' => true),
        'hours' => array('type' => self::TYPE_STRING, 'required' => false),
        'active' => array('type' => self::TYPE_BOOL, 'required' => false),
    ),
);

フィールド category_id を追加したいのですが、これを行いました:

public static $definition = array(
    'table' => 'MyTable',
    'primary' => 'id',
    'multilang' => false,
    'fields' => array(
        'day' => array('type' => self::TYPE_INT, 'required' => true),
        'hours' => array('type' => self::TYPE_STRING, 'required' => false),
        'active' => array('type' => self::TYPE_BOOL, 'required' => false),
        'category_id' => array('type' => self::TYPE_INT, 'required' => true)
    ),
);

しかし、作成するnew MyTableと、新しいフィールドが表示されません。キャッシュの問題だと思いますが、解決方法がわかりません。

4

2 に答える 2

0

クラスのいずれかを calsses フォルダーに直接配置することはお勧めできません。これらのファイルは自動アップグレードで削除される可能性があるためです。

ベスト プラクティスとして、クラスを override/classes フォルダーに配置します。その後、キャッシュフォルダーに移動し、ファイル「class_index.php」を見つけて、このファイルを削除します。

注: class_index.php は、PS によって自動生成されたファイルであり、すべてのクラスとコントローラーにインデックスを付けるため、クラスまたはコントローラーのロード中にフォルダー内のファイルまたはクラスを検索する時間を節約できます。そのため、新しい calss またはコントローラーの場合、このファイルを削除する必要があります。そうしないと、そのクラスまたはコントローラーが機能しなくなります。したがって、それを削除すると、次回の実行時または PS への要求時に自動的に再生成され、クラスもその中にインデックス付けされます。

于 2013-09-27T20:37:49.580 に答える