Я планирую отправить id
на supplier
на transaction_in
, но у меня есть эта ошибка
SQLSTATE [23000]: нарушение ограничения целостности: 1452Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (database_name
. transaction_ins
, CONSTRAINT transaction_ins_supplier_id_foreign
FOREIGN KEY (Supplier_id
) ССЫЛКИ suppliers
(id
) ON UPDATE CASCADE) (SQL: insertв transaction_ins
(Supplier_id
, updated_at
, created_at
) значения (0, 2019-10-21 07:54:15, 2019-10-21 07:54:15))
Это transaction_in
таблица миграции
public function up()
{
Schema::create('transaction_ins', function (Blueprint $table) {
$table->bigIncrements('id');
$table->date('tanggal_transaksi');
$table->unsignedBigInteger('Supplier_id');
$table->timestamps();
//Foreign Key
$table->foreign('Supplier_id')->references('id')->on('suppliers')->onUpdate('cascade');
});
}
transaction_in
модель
class Transaction_in extends Model
{
protected $guarded = [];
public function suppliers(){
return $this->belongsTo(Supplier::class);
}
}
Это supplier
таблица миграции
public function up()
{
Schema::create('suppliers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('nama');
$table->timestamps();
});
}
supplier
модель
class Supplier extends Model
{
protected $guarded = [];
public function transactions_in(){
return $this->hasMany(Transaction_in::class);
}
}
Я уже пробовал решение из SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку (Laravel 6)
КогдаЯ запускаю запрос из принятого ответа, он возвращает пустой, но я не понимаю эту часть
Если вы возвращаете пустой набор результатов, это означает, что ваша вставка ссылается на данные в order
которого не существует.
Но данные существуют в supplier
таблице
Что мне сделать, чтобы это исправить?
Это create.blade.php
для transaction_in
{{ Form::open(['action' => 'TransactionsINController@store', 'method' => 'POST']) }}
<div class="form-group">
{{ Form::label('supplier_name', 'Supplier Name') }}
{{ Form::select('supplier_name', $supplierList->pluck('nama'), null, ['class' => 'form-control', 'placeholder' => 'Pick one Supplier...']) }}
</div>
<hr>
{{ Form::button('<i class="far fa-save"></i> Submit', ['type' => 'submit', 'class' => 'btn btn-info'] ) }}
{{ Form::close() }}
и это store
метод на transaction_in
контроллере
public function store(Request $request)
{
$request->validate([
'supplier_name' => 'required'
]);
$transaction_in = new Transaction_in();
$transaction_in->Supplier_id = $request->input('supplier_name');
$transaction_in->save();
}