我想触发一个。创建php make:migration
AddTrigger并在cmd中编写php artisan migrate
时编写代码后,出现以下错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError:语法错误, E:\ laravel项目中出现意外的“接收者”(T_STRING),期望为“)” 文件夹\血液\数据库\迁移\ 2019_06_14_173818_add_trigger.php:16
12| * @return void
13| */
14| public function up()
15| {
> 16| DB::unprepared('CREATE TRIGGER amount AFTER INSERT ON 'receiver' FOR EACH ROW
17| BEGIN
18| INSERT INTO 'receipt' ('r_id') VALUES (10);
19| END');
20| }
异常跟踪:
1 Illuminate \ Filesystem \ Filesystem :: requireOnce(“ E:\ laravel 项目 folder \ blood \ database \ migrations / 2019_06_14_173818_add_trigger.php“) E:\ laravel项目文件夹\血液\供应商\ laravel \ framework \ src \ Illuminate \ Database \ Migrations \ Migrator.php:475
2 Illuminate \ Database \ Migrations \ Migrator :: requireFiles() E:\ laravel项目文件夹\ blood \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Migrations \ Migrator.php:105
请使用参数-v查看更多详细信息。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddTrigger extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::unprepared('CREATE TRIGGER amount AFTER INSERT ON 'receiver' FOR
EACH ROW
BEGIN
INSERT INTO 'receipt' ('r_id') VALUES (10);
END');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::unprepared('DROP TRIGGER 'amount'');
}
}
我使用了一个名为PageController的控制器,在其中我使用了该函数插入接收器。
答案 0 :(得分:0)
您忘记添加数据库外观,将use Illuminate\Support\Facades\DB;
添加到文件中。
使用DB::raw
函数执行原始查询,并使用双引号进行查询。
DB::unprepared(DB::raw("CREATE TRIGGER amount AFTER INSERT ON 'receiver' FOR EACH ROW BEGIN INSERT INTO 'receipt' ('r_id') VALUES (10); END"));