1

orderデータベースのフィールドの2行の値を変更する必要があります。このフィールドは一意です。

私が試したこと:

  1. 両方の項目の値をPHP変数に格納します。

  2. 最初の行のフィールド値をNULL(フィールドではnullが受け入れられます)に設定します。

  3. 2番目の行のフィールドの値を最初の行で保持されていた値に設定し、

  4. 最初の行のフィールド値を元の2番目の行のフィールド値に設定します。


順序変更の実行時に「エントリの重複」エラーが発生するため、機能しません。CakePHPを使用してこれを行う方法を見つけることができないようです。

これが私が書いたコードです(それは機能的ではありませんが):

if ($second_row) {
    $next = $second_row['Immeuble']['order'];
    $prev = $first_row['Immeuble']['order'];

    $this->Immeuble->id = $first_row_id;
    $this->Immeuble->saveField('order', 'null');


    $this->Immeuble->id = $second_row['Immeuble']['id'];
    $this->Immeuble->saveField('order', $prev);

    $this->Immeuble->id = $first_row_id;
    $this->Immeuble->saveField('order',$next);
}
4

2 に答える 2

0

上で述べたコードは完全に機能しますいくつかの値を反転しただけで、すべてが台無しになります。他の誰かが同様のことをする必要がある場合に備えて、質問を削除しません。

于 2012-12-18T13:18:12.327 に答える
0

もちろん、その重複キー

idを2回定義しました

     $this->Immeuble->id = $first_row_id;

     $this->Immeuble->id = $second_row['Immeuble']['id'];

その後

     $this->Immeuble->id = $first_row_id;

この最後の行を削除してみてください

于 2012-12-17T19:06:39.023 に答える