-1

私は3つのモデル(私はzend 1.11、mysqlで作業しています)、それぞれ3つのテーブル「category」、「product」、および「product_translate」を持っています。これには、製品の翻訳ラベルが含まれています。製品とカテゴリの間の関係 (製品は 1 つのカテゴリにのみ存在できます)、および製品と product_translate の間の別の 1 対多の関係です。私が必要とするのは、新しいカテゴリを挿入することです。次に、このカテゴリの最後に挿入された ID を製品テーブルに割り当てます。同じことが「product_translate」にも当てはまります。これを行う最善の方法は、トランザクションを使用することですが、問題があります。 1/このトランザクションを一度に挿入するには、どのモデルにどこに配置すればよいですか? "product"、"category" または "product_translate" ? 2/最後に挿入された ID を処理するにはどうすればよいですか。これは、特に変換テーブルで何度か必要になるためです (製品の最後に挿入された ID を使用して、少なくとも 2 つの新しい行を挿入する必要があるため)。私は自分自身を明確にしたことを願っています、どんな助けや提案も大歓迎です

ありがとうございました

4

1 に答える 1

0

私はこのように提案します

コントローラ/アクションで

$category = new Category_model();
$lastinsertid = $category->categoryInsertFunction();

必要なモデル内でこれを呼び出すことにより、最後の挿入IDを取得できます

$this->getDefaultAdapter()->lastInsertId();

categoryInsertFunctionからこの値を返します

また、最後の挿入IDを他の関数に使用します。

于 2012-05-17T06:19:32.900 に答える