【问题标题】:Why am I getting the error in post? Laravel为什么我在帖子中收到错误消息?拉拉维尔
【发布时间】:2020-06-03 02:33:34
【问题描述】:

所以我正在尝试使用 Laravel 创建一个简单的 REST API。 在通过向数据库创建新项目来测试 API 时,我收到一个错误:

Illuminate\Database\QueryException: SQLSTATE[23000]: 完整性约束违规: 1452 无法添加或更新子行: 外键约束失败 (world.cities, CONSTRAINT cities_ibfk_1 FOREIGN KEY (@987654324 @) REFERENCES country (Code)) (SQL: 插入cities (Name, CountryCode, District, Population, updated_at, created_at) 值 (Valhalla, created_at) , Ragnar Alley, 200000000, 2020-02-19 01:07:26, 2020-02-19 01:07:26)) 在文件 C:\xampp\htdocs\myapp\vendor\laravel\framework\src\Illuminate\第 669 行的 Database\Connection.php

这是控制器:


      public function createCity(Request $request) {
        $city = new City;
        $city->Name = $request->Name;
        $city->CountryCode = $request->CountryCode;
        $city->District = $request->District;
        $city->Population = $request->Population;
        $city->save();

型号:

class City extends Model
{
    protected $table = 'cities';

    protected $fillable = ['Name', 'CountryCode', 'District', 'Population'];
}

我们将不胜感激,因为我无法弄清楚为什么在 POST 之后出现错误。 提前致谢。

【问题讨论】:

  • CountryCode 必须存在于您的国家/地区表中?你能展示一下你的表格结构吗?
  • vhl 是否存在于您的countryCode 列中?
  • 我只有城市表。我得到了一个可以使用的 sql 文件,它只有一个表。

标签: laravel rest api


【解决方案1】:

您尝试将vlh 作为contry_code 值添加到您的模型中。但是此字段引用另一个具有country 名称的模型,并且在该表中没有任何符合此条件的记录,vlh 值为未知或它。

您可以 romve 这些模型之间的关系(如果可能的话),或者首先找到 countryid 具有 that code,然后将其插入到您的模型中。

【讨论】:

  • 谢谢!但就是这样。我在 SQL 文件中只有一个表,并且在任何地方都没有引用县代码。我应该提一下,国家代码不是数据库上显示的简单字符串,而更像是一个链接。无论如何,我没有任何其他表格可以从中提取信息。
猜你喜欢
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
相关资源
最近更新 更多