models/BaseDataModel.php
public function swapPrio($id1, $id2, $orderField = 'prio')
    {
        $item1 = self::findOne(['id' => $id1]);
        if (!empty($item1->$orderField)) {
            $prio1 = $item1->$orderField;
        } else {
            return false;
        }
        $item2 = self::findOne(['id' => $id2]);
        if (!empty($item2->$orderField)) {
            $prio2 = $item2->$orderField;
        } else {
            return false;
        }

        $transaction = Yii::$app->db->beginTransaction();
        try {
            $item1->$orderField = $prio2;
            $n1 = $item1->updateInternal();
            $item2->$orderField = $prio1;
            $n2 = $item2->updateInternal();
            if ($n1 && $n2) $transaction->commit();
        } catch (Exception $e) {
            $transaction->rollBack();
            Yii::error($e);
            if (YII_DEBUG) throw $e;
        }
        return true;
    }
public function swapPrio($id1, $id2, $orderField = 'prio')
    {
        $item1 = self::findOne(['id' => $id1]);
        if (!empty($item1->$orderField)) {
            $prio1 = $item1->$orderField;
        } else {
            return false;
        }
        $item2 = self::findOne(['id' => $id2]);
        if (!empty($item2->$orderField)) {
            $prio2 = $item2->$orderField;
        } else {
            return false;
        }

        $transaction = Yii::$app->db->beginTransaction();
        try {
            $item1->$orderField = $prio2;
            $n1 = $item1->updateInternal();
            $item2->$orderField = $prio1;
            $n2 = $item2->updateInternal();
            if ($n1 && $n2) $transaction->commit();
        } catch (Exception $e) {
            $transaction->rollBack();
            Yii::error($e);
            if (YII_DEBUG) throw $e;
        }
        return true;
    }
public function swapPrio ( $ id1 , $ id2 , $ orderField = 'prio' ) { $ item1 = self :: findOne ( [ 'id' => $ id1 ] ) ; if ( ! empty ( $ item1 -> $ orderField ) ) { $ prio1 = $ item1 -> $ orderField ; } else { return false ; } $ item2 = self :: findOne ( [ 'id' => $ id2 ] ) ; if ( ! empty ( $ item2 -> $ orderField ) ) { $ prio2 = $ item2 -> $ orderField ; } else { return false ; } $ transaction = Yii :: $ app -> db -> beginTransaction ( ) ; try { $ item1 -> $ orderField = $ prio2 ; $ n1 = $ item1 -> updateInternal ( ) ; $ item2 -> $ orderField = $ prio1 ; $ n2 = $ item2 -> updateInternal ( ) ; if ( $ n1 && $ n2 ) $ transaction -> commit ( ) ; } catch ( Exception $ e ) { $ transaction -> rollBack ( ) ; Yii :: error ( $ e ) ; if ( YII_DEBUG ) throw $ e ; } return true ; }
Swap order field values for
@param integer $id1
@param integer $id2
@param string $orderField
@return boolean
Swap order field values for