Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Transazioni Con Activerecord

$
0
0
Salve, qualcuno ha provato a fare delle transazioni via activerecord?
avrei bisogno di salvare più model, e devo essere certo che tutti i salvataggi avvengano correttamente.

ho provato un codice di questo tipo:
$transaction = Yii::app()->db->beginTransaction();
 
try {
    $user = new User();
    $user->username = $form->username;
    $user->password = $form->password;
    $user_save = $user->save(FALSE);
 
    $user_info = new UserInfo();
    $user_info->name = $form->name;
    $user_info->user = $user->id;
    $user_info->age = $form->age;
    $user_info_save = $user_info->save(FALSE);
   
    if($user_save && $user_info_save){
        $transaction->commit();
    } else {
        $transaction->rollBack();
    }
} catch(Exception $e) {
    $transaction->rollBack();
}


in questa maniera però, provando lato controller a inserire valori manualmente, ad esempio, valori testuali in campi int, la transazione avviene ugualmente, lasciando vuoto il campo int nel db perchè permette valori null.

nel caso,ad esempio, io inserisca valori numerici che violino una foreign key.. a quel punto vedo l'errore.

la domanda è. non c'è un modo che la transazione passi prima la validazione yii e poi anche i vincoli del db. ora va solo per la seconda questione, e il db nel caso arrivino caratteri al posto di un int non genera un'eccezione ma lascia il campo vuoto.

Viewing all articles
Browse latest Browse all 18717

Trending Articles