我想获得在两个表中都插入的'loan_id‘。
使用return $this->getConnection()->getPdo()->lastInsertId();,我想我至少应该获得最后一个id (对于这个模型,它被指定为'id‘并自动递增),但我也没有收到它。(仅为空响应)
如果我能得到在数据库中插入的完整对象,那就更好了。
因此,我希望在事务失败时捕获异常,并在事务失败时返回错误消息,在事务成功时返回$loan_id或saved Object。该怎么做呢?
<?php
namespace App\model;
use Illuminate\Database\Eloquent\Model as Eloquent;
//use Illuminate\Support\Facades\DB as DB;
use Illuminate\Support\Manager as Manager;
use Illuminate\Database\Capsule\Manager as DB;
use PDO;
class Loan extends Eloquent
{
protected $table = 'loans';
protected $primaryKey = 'id';
public $timestamps = false;
public function addLoan($amount, $instalments)
{
// Manager::connection()->getPdo()->beginTransaction();
$this->getConnection()->transaction(function () use ($amount)
{
$loan_id = substr(uniqid(), -12);
DB::table('loans')->insert([
'loan_id' => $loan_id,
'amount' => $amount,
'status' => 'requested'
]
);
DB::table('loan_instalment')->insert([
'loan_id' => $loan_id,
'principal' => 777.12,
'interest' => 333.12
]
);
});
return $this->getConnection()->getPdo()->lastInsertId();
}
}
?>发布于 2016-08-09 22:59:48
而不是
$this->getConnection()->getPdo()->lastInsertId()您可以这样做:
DB::table('table')->insert([...])->lastInsertId();https://stackoverflow.com/questions/38854072
复制相似问题