Laravel, создайте триггер MySQL из миграции

Я создал MySQL хранимую процедуру из миграции, и она работает нормально.

DB::unprepared(' CREATE PROCEDURE sp_Create_Default_Task_1(IN _kid_id INT) BEGIN INSERT INTO tasks (kid_id, name) VALUES (_kid_id, \'daily\'); END' ); 

В дальнейшем я попытался сделать то же самое, чтобы создать триггер MySQL с последующим кодом

 <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTrigger extends Migration { public function up() { DB::unprepared(' CREATE TRIGGER tr_Task_Default AFTER INSERT ON `kids` FOR EACH ROW INSERT INTO tasks (`kid_id`, `name`) VALUES (NEW.id, \'Default\'); '); } public function down() { DB::unprepared('DROP TRIGGER `tr_User_Default_Member_Role`'); } } 

Но он возвращает ошибку после запуска php artisan migrate

 {"error":{"type": "Symfony\\Component\\Debug\\Exception\\FatalErrorException", "message":"Class 'CreateTriggers' not found", "file":"C:\\xampp\\htdocs\\dev03\\vendor\\laravel\\framework \\src\\Illuminate\\Database\\Migrations\\Migrator.php", "line":301}} 

Вопрос: Что происходит не так?

Возникла проблема с присвоением классов.

Правильное имя класса может помочь или сделать то же, что и я, скопируйте рабочий код запуска в блокнот / текст. Удалите старый файл триггера миграции и создайте новый.

Примечание. Кстати, одно и то же решение действительно для Laravel 4.x и Laravel 5.x

В Ларавеле 4

 php artisan migrate:make create_trigger 

В Ларавеле 5

 php artisan make:migration create_trigger 

После того, как он был сгенерирован, я копирую и вставляю тот же код триггера из своего блокнота / текста, и он отлично работает.

Вот окончательный рабочий код для создания триггера через миграцию.

он работает как с методом RAW и с UNPREPARED .

 <?php use Illuminate\Database\Migrations\Migration; class CreateTrigger extends Migration { public function up() { DB::unprepared(' CREATE TRIGGER tr_User_Default_Member_Role AFTER INSERT ON `users` FOR EACH ROW BEGIN INSERT INTO role_user (`role_id`, `user_id`, `created_at`, `updated_at`) VALUES (3, NEW.id, now(), null); END '); } public function down() { DB::unprepared('DROP TRIGGER `tr_User_Default_Member_Role`'); } } 

Примечание. Это просто пример демонстрации концепции

Запустить composer dumpautoload в корне (то же самое место, что и artisan ) должен заставить его работать.