3

この投稿は、一種の情報提供と質問です。みなさん、こんにちは。トリガーを有効活用する大規模なシステムを開発しています。現在、phpmyadminを使用して、php 7を使用してLaravel 5.2でサーバー側を実行しています。Laravel 内には、移行を通じてトリガーを使用する方法に関する確かなドキュメントはあまりありません。私が発見したことから、ほとんどの場合、「生」で行う必要があります。

以下は、移行でトリガーを記述する方法について、私が知っている簡単な例です。

class CreateAccountTriggerTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
     public function up() 
     {   
         DB::unprepared('
             CREATE TRIGGER `my_trigger_name` AFTER INSERT ON `table_the_change_happened`
             FOR EACH ROW 

             BEGIN

             INSERT INTO `this_table`
                  (field1,field2,field3)
             VALUES
                  ('value1','value2','value3')

             END
         ');
     }

     /**
      * Reverse the migrations.
      *
      * @return void
      */
     public function down() {
          DB::unprepared('DROP TRIGGER IF EXISTS `my_trigger_name`');
     }
 }

質問: laravel のクエリ ビルダー内で変数を使用するクリーンな方法を知っている人はいますか?

メソッド DB::unprepared() では、バインドされたアイテムをそれにアタッチすることはできません。この問題について私が見つけた確固たるドキュメントがないため、Eloquent で試すことはほとんど不可能です。誰かがこれについて詳しく説明できるなら、私はそれを大いに感謝します. 前もって感謝します

ここでの要求ごとの更新 は、laravel のクエリ ビルダー内で変数を使用することによって私が意味することの例になります。

          $stuff = bcrypt($random_numbers);
          DB::unprepared('
             CREATE TRIGGER `my_trigger_name` AFTER INSERT ON `table_the_change_happened`
             FOR EACH ROW 

             BEGIN

             INSERT INTO `this_table`
                  (field1,field2,field3)
             VALUES
                  ('value1','value2','value3',"$stuff")

             END
         ');
4

1 に答える 1