gpt4 book ai didi

php - 是什么阻止我添加具有外键值的行?

转载 作者:行者123 更新时间:2023-11-29 12:20:18 26 4
gpt4 key购买 nike

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 手动添加一行效果很好。如果我通过我的应用程序做到这一点 - 不。

我尝试插入的 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');
}

最佳答案

我有直觉感觉属性受到保护。您的代码似乎是正确的,但是您收到的错误来自数据库。您可以这样尝试一下,看看是否有效:

$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 方法会使调试正在发生的事情变得困难。

关于php - 是什么阻止我添加具有外键值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com