1

PHP スクリプトを使用して Prestashop にカテゴリを追加する際に小さな問題があります。1 人のいい人が、カテゴリを追加するためのスクリプトを手伝ってくれます。

$cat = new Category();
$cat->id = 301;
$cat->id_category = 301;
$cat->id_category_default = 301;
$cat->name = 'category name';
$cat->active = 1;
$cat->link_rewrite = Tools::link_rewrite($cat->name);
$cat->id_parent = Configuration::get('PS_HOME_CATEGORY');
$cat->add();

ご覧のとおり、カテゴリ ID を設定するための ID、id_category、および category_default を試してみてください。

独自のIDでカテゴリを作成するにはどうすればよいですか? ありがとうございました

4

2 に答える 2

2

はい、add関数を呼び出してPS CRUDを使用しているため、機能しません。独自の自動インクリメント値またはIDを追加する場合は、データベース挿入用の独自のクエリを作成する必要があります。最新のPS1.5.xでは簡単です。PS 1.5.xを使用している場合は、次のようにします。

$data = array(
          'id_category' => 301,
          'active' => 1,
  ...... and so one with other no language fields 

)。

その後、挿入関数を呼び出します

  Db::getInstance()->insert('category', $data); 

次に、言語データを挿入するために、以下のような他の配列を作成します

 $dataLang = array (

'id_category' => 301,
'id_lang' => 1,
'name' => 'my category',

 ..... and so on

);

上記のように挿入します

 Db::getInstance()->insert('category_lang', $dataLang);

複数の言語を使用している場合は、すべての言語のループで言語データを不活性化するか、言語ごとにループなしで挿入する必要があることに注意してください。

注:上記のコードはテストされておらず、単なるサンプルコードです。

ありがとうございました

于 2013-03-09T06:26:27.080 に答える
0

Web サービスの API を変更できます。

ファイル WebserviceRequest.php のこの行をコメントする必要があります

/*elseif ($this->method == 'POST' && count($ids) > 0)
{
    $this->setError(400, 'id is forbidden when adding a new resource', 91);
    return false;
}*/
于 2014-05-20T11:20:07.743 に答える