1452 Cannot add or update a child row: a foreign key constraint fails (`bpr`.`trips`, CONSTRAINT `trips_driver_user_id_foreign` FOREIGN KEY (`driver_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE)
是错误。
通过MySQL手动添加行可以正常工作。如果我通过我的申请 - nope。
我想要插入的id
是正确的(它存在并且是一个整数)。我检查了外键和东西,一切看起来都很好。我不知道问题可能是什么......
一些代码:
$input = Input::all();
Trip::create([
'route_from' => $input['route_from'],
'route_to' => $input['route_to'],
... adding other stuff ...
'driver_user_id' => Auth::user()->id
]);
当我var_dump(Auth::user()->id)
时,我确实得到了正确的int
号码,这是特定用户的正确对应ID。
在Trip模型中:
protected $hidden = [
'id'
];
protected $fillable = [
'route_from',
'route_to',
...
'driver_user_id'
];
public function Trip()
{
return $this->belongsTo('User', 'driver_user_id', 'id');
}
用户模型中的:
public function Trips()
{
return $this->hasMany('Trip');
}
答案 0 :(得分:1)
我有直觉感觉属性受到保护。您的代码似乎是正确的,但是您收到的错误来自数据库。你可以这样试试看它是否有效:
$trip = new Trip;
$trip->unguard();
$trip->fill([
'route_from' => $input['route_from'],
'route_to' => $input['route_to'],
... adding other stuff ...
'driver_user_id' => Auth::user()->id
]);
$trip->save();
在模型上使用create
方法,很难调试正在发生的事情。