Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку с отсечкой - PullRequest
0 голосов
/ 14 октября 2019

У меня возникла следующая проблема:

Я хотел бы создать запись модели с помощью Pivot. Сохраняя это, я получаю эту ошибку:

 "message": "SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
    (`homestead`.`product_bundle_product_product_bundle_product_attribute`, CONSTRAINT `pb_product_attribute` FOREIGN KEY
    (`product_bundle_product_attribute_id`) REFERENCES `product_bundle_product_)
    (SQL: insert into `product_bundle_product_product_bundle_product_attribute`
    (`custom`, `price`, `product_bundle_product_attribute_id`, `product_bundle_product_id`, `title`, `type`, `unit`, `value`)
    values (1, 2, 1, 1, Test, decimal, GB, 16))",
    "exception": "Illuminate\\Database\\QueryException",
    "file": "/home/vagrant/code/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
    "line": 665,

Это миграция, которая относится к этому:

Schema::create('product_bundle_product_product_bundle_product_attribute', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->bigInteger('product_bundle_product_id')->unsigned();
            $table->bigInteger('product_bundle_product_attribute_id')
                ->unsigned();
            $table->boolean('custom')->nullable();
            $table->string('title')->nullable();
            $table->string('unit')->nullable();
            $table->string('type')->nullable();
            $table->text('value')->nullable();
            $table->float('price')->nullable();
            $table->foreign('product_bundle_product_id', 'pb_product')
                ->references('id')
                ->on('product_bundle_products')->onDelete('cascade');
            $table->foreign('product_bundle_product_attribute_id', 'pb_product_attribute')
                ->references('id')
                ->on('product_bundle_product_attributes')
                ->onDelete('cascade');
        });

Я смог запустить миграцию без проблем, но один разЯ пытаюсь sync это, я получаю ошибку выше.

Это мое sync заявление:

        $result = [ 1 => [
            'custom' => true,
            'title' => "Test",
            'unit' => 'GB',
            'type' => "decimal",
            'price' => 2,
            'value' => 16
        ]];

 $this->productAttributes()->sync($result);

Я видел в сообщении об ошибке, что что-то вырезановыкл:

REFERENCES product_bundle_product_ где это должно быть product_bundle_product_attributes, верно?

...