мы пытаемся зарегистрировать изменения, внесенные в модели, через ORM laravel 5.
Существуют события по умолчанию, которые мы используем для достижения того же, например static::saving(), static::created() и т. д.
Но когда я использую вставку ниже, ни одно из событий ORM не запускается.
Рабочий код:
$myclass = new MyClass;
$myclass->save($data);
Не работает:
MyClass::insert()
Пожалуйста, помогите парню.
Даже я предполагаю то же самое, но я не нашел никакой документации, говорящей об этом. Проблема здесь в том, что приложение уже собрано, и мы сейчас подключаем к нему логи, поэтому пытаемся выяснить, что именно оно делает и почему оно там используется.
Я думаю, вы могли бы сделать макрос Lravel, чтобы перезаписать insert или заставить все MyClass модели расширять абстрактный класс, который будет иметь insert метод, в котором вы можете регистрировать каждый запрос.






Если вы используете Eloquent ORM, то ->save() не принимает никаких аргументов.
Правильный способ:
$flight = new Flight;
$flight->name = $request->name;
$flight->save();
Если вы используете построитель запросов, вы используете вставку(),
DB::table('flights')->insert([
['name' => 'Foo', 'emailaddress' => '[email protected]'],
['name' => 'Loo', 'emailaddress' => '[email protected]']
]);
Надеюсь это поможет.
Да! теперь получил представление о том, как они оба работают! Спасибо
Я думаю, что вставка выполняет прямой запрос к таблице и не использует и не запускает какие-либо методы Eloquent. Почему бы не использовать
create()вместо этого?