prestashop データベースの製品テーブルに「mystock」フィールドを追加しました。今、私はこのファイルを編集製品ページで表示/編集したいと考えています。また、製品が更新されるときに更新されます。
5 に答える
このプロセスには、いくつかの回避策が必要です。以下にそれらをリストしました。
1) classes/Product.php を開きます。$mystock を公開します。クラスが開始された後に表示される、クラスのプロパティ リストに表示されます。
2) ファイルの下にpublic static $definition = array( を見つけます。これは長い配列になります。その中に'fields' => array(を見つけます。そこに、検証、データ型などで配置されたすべてのデータベース フィールドが表示されます。 mystock をその配列に別のアイテムとして配置し、他のフィールドに配置されているのと同じように、正しい検証とデータ型を配置します。
3) adminFolder/themes/default/template/controllers/products/informations.tplを開き、正しい名前と ID を持つフィールドを適切な場所に配置します。フィールド名/ID の両方が、db フィールド名と Products.php クラスに追加したものと同じである必要があることに注意してください。
それだけです。プロセスを理解し、それを機能させることを願っています。
ありがとうございました
4 つのステップによる最適な包括的なソリューションは次のとおりです。
1) 以下を含むファイル Product.php を \override\classes に追加します。
<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore
{
public $mystock;
}
2) adminFolder/themes/default/template/controllers/products/informations.tpl を開き、正しい名前と ID を持つフィールドを適切な場所に配置します。
3) ファイル cache/class_index.php を削除します。
4) 数値フィールドのフィールドを DB に追加します。
ALTER TABLE ps_product ADD mystock INT NOT NULL;
[1) と 4) については Bell418 に、2) については Altaf Hussain に感謝します]