2
列の値を変更する表の前に挿入トリガー(MySQL)があります。トリガーによって変更された列から値を取得する方法
しかし、object->number
(数字はトリガーに設定された列です)を実行すると、トリガーが実行されるはずの->save()
を実行した後、データベース番号を調べると何も表示されません。
私は、挿入中にautoincrement idも設定されていて、それを得ることができるのはなぜですか?ヘルプ
$object = new Table();
$object->col1 = 'hello';
$object->save();
echo $object->number;
数の
おかげで挿入トリガーここ
前であなたがsave
現在値と呼ばトリガーのコード
CREATE DEFINER=`homestead`@`%` TRIGGER `database`.`Table_BEFORE_INSERT` BEFORE INSERT ON `table` FOR EACH ROW
BEGIN
SET New.number = (SELECT COUNT(*) from `table` where relation_id = New.relation_id);
END
あなたのコードをtiggerから見てみましょう –
'$ model'が保存され、そのリクエストのオブジェクトの状態を覚えています。その後、MySQLからリロードされません。 '$ model-> save();を実行する必要があります。 $ model =モデル:: find($ id); echo $ model-> number; 'numberの新しい値を取得するために使用します。 –