Laravel 4-无法在种子或迁移类中捕获数据库异常 [英] Laravel 4 - Cannot catch database exception in seed or migration class

查看:114
本文介绍了Laravel 4-无法在种子或迁移类中捕获数据库异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

带有MySql数据库的Laravel 4. 由于某种原因,我无法在种子或迁移类中捕获数据库异常( Illuminate \ Database \ QueryException ):代码从不进入catch块.

Laravel 4 with MySql db. For some reason, I cannot catch DB exceptions (Illuminate\Database\QueryException) inside a seed or migration class: the code never enters the catch block.

例如,如果我尝试在名称"列为UNIQUE的表上插入:

For example, if I try to insert on a table where the column 'name' is UNIQUE:

try {
    $data = array('id' => 1, 'name' => 'foo');
    DB::table('table')->insert($data);
}
catch (\Exception $e) {
    $this->command->error("SQL Error: " . $e->getMessage() . "\n");
}

...我总是会收到此错误:

...I always get this error:

PHP Warning: Uncaught exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆