Chcę usunąć wiersz w bazie danych na podstawie pewnych warunków. Próbowałem tak, jak to jest właściwy sposób na usunięcie wiersza w bazie danych?Jak usunąć wiersze w Yii2?
7
A
Odpowiedz
15
Podczas pracy z modelami (ActiveRecord
), tak, to jest właściwa droga.
Możesz użyć $model->delete()
do usunięcia modelu. W rezultacie, odpowiedni wiersz w powiązanej tabeli zostanie usunięty.
Można użyć programów obsługi zdarzeń beforeDelete()
i afterDelete()
wraz z tą metodą, aby obsłużyć niektóre zadania związane z usunięciem.
Alternatywy bez użycia modelu:
\Yii::$app
->db
->createCommand()
->delete('users', ['id' => 1])
->execute();
lub
use yii\db\Query;
...
(new Query)
->createCommand()
->delete('users', ['id' => 1])
->execute();
0
$x = Yii::$app->db->createCommand("
DELETE FROM group_members
WHERE group_id = '$id'
AND member_id = '$usr'
")->execute();
... to nie ma żadnego wytłumaczenia. –