Я пытаюсь сохранить идентификаторы 2 моделей с помощью метода syn c, но получаю эту ошибку:
сообщение: «SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец» cable_core_id 'в' списке полей '(SQL: вставить в closure_cores
(cable_core_id
, core_id
) значения (20, 28)) "
Снимок экрана
Это это данные, которые я отправил на сервер
модели
TitikClosur
class TitikClosur extends Model
{
public function cores(){
return $this->belongsToMany(CableCore::class, 'closure_cores', 'core_id');
}
}
CableCore
class CableCore extends Model
{
public function closures(){
return $this->belongsToMany(TitikClosur::class, 'closure_cores', 'closure_id');
}
}
Контроллер
public function store(Request $request)
{
$titik = new TitikClosur;
//...
$titik->save();
$titik->cores()->sync($request->cores, false);
return....
}
Схема
Так выглядит моя таблица для сохранения идентификаторов
public function up()
{
Schema::create('closure_cores', function (Blueprint $table) {
$table->id();
$table->foreignId('core_id');
$table->foreignId('closure_id');
$table->timestamps();
});
Schema::table('closure_cores', function (Blueprint $table) {
$table->foreign('core_id')->references('id')->on('cable_cores')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('closure_id')->references('id')->on('titik_closurs')->onUpdate('cascade')->onDelete('cascade');
});
}
Любая идея?
Обновление
Я изменил свои коды модели следующим образом:
TitikClosur
public function cores(){
return $this->belongsToMany(CableCore::class, 'closure_cores', 'core_id', 'closure_id');
}
CableCore
public function closures(){
return $this->belongsToMany(TitikClosur::class, 'closure_cores', 'closure_id', 'core_id');
}
Теперь я получаю эту ошибку
сообщение: «SQLSTATE [23000]: нарушение ограничения целостности: 1452 Не удается добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (gis-web
. closure_cores
, CONSTRAINT closure_cores_core_id_foreign
ИНОСТРАННЫЙ КЛЮЧ (core_id
) ССЫЛКИ cable_cores
(id
)) (SQL : вставить в closure_cores
(closure_id
, core_id
) значения (20, 34)) "