Почему я получаю сообщение об ошибке? Laravel - PullRequest
0 голосов
/ 19 февраля 2020

Итак, я пытаюсь создать простой REST API, используя Laravel. При тестировании API с созданием новых элементов в базе данных я получаю сообщение об ошибке:

Illuminate \ Database \ QueryException: SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: a Сбой ограничения внешнего ключа (world. cities, CONSTRAINT cities_ibfk_1 FOREIGN KEY (CountryCode) ССЫЛКИ country (Code)) (SQL: вставить в cities (Name, CountryCode, District, Population, updated_at, created_at) значения (Valhalla, VLH, Ragnar Alley, 200000000, 2020-02-19 01:07:26, 2020-02-19 01:07: 26)) в файле C: \ xampp \ htdocs \ myapp \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection. php в строке 669

вот контроллер:


      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. Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

Вы пытаетесь добавить vlh как значение contry_code в вашу модель. Но это поле ссылается на другую модель с именем country, и в этой таблице нет записей с этим условием, а значение vlh равно неизвестно или нет.

Вы можете найти отношения между этими моделями (если это возможно) или сначала найти id из country, который имеет that code, а затем вставить его в вашу модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...