Laravel, créer MySQL déclenchement de la Migration
J'ai créé MySQL procédure stockée à partir de migration et il fonctionne très bien.
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'
);
Ci-après, j'ai essayé de faire la même chose pour créer MySQL déclencher avec le code suivant
<?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`');
}
}
Mais elle renvoie l'erreur, après je lance 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}}
Question: Ce qui ne va pas?
Post le fichier en entier. On dirait que votre nom de la classe est mal?
J'ai résolu maintenant, thx c'était quelque chose avec le nom de la classe
J'ai résolu maintenant, thx c'était quelque chose avec le nom de la classe
OriginalL'auteur maytham-ɯɐɥʇʎɐɯ | 2014-12-10
Vous devez vous connecter pour publier un commentaire.
Il y a problème avec la classe de nommage.
Corriger nom de la classe peut aider OU faire comme j'ai fait, de Copier votre travail code du déclencheur temporaire dans le bloc-notes/texte. Supprimer l'ancien migration de déclenchement de fichiers et d'en générer de nouvelles.
Dans Laravel 4
Dans Laravel 5
Après qu'il a été généré-je copier et coller le même code de Déclencheur de mon bloc-notes/texte et il fonctionne très bien.
Voici le dernier code de travail pour la création de déclenchement par le biais de la migration.
il fonctionne à la fois avec
RAW
etUNPREPARED
méthode.OriginalL'auteur maytham-ɯɐɥʇʎɐɯ
Exécuter
composer dumpautoload
à la racine (au même endroit queartisan
) pour faire le travail.OriginalL'auteur Yarco
Dans Laravel 5.5 fonctionne uniquement avec
DB::unprepared()
méthode.OriginalL'auteur Cristian Ghirba