Итак, я хотел бы знать, как вставить данные в две разные таблицы, но связать, Table Poste (предложение, объявление) и компанию, каждое объявление является ссылкой на компанию, я создал две модели и только 1 контроллер, сообщение и компанию и Postecontroller.
Schema::create('entreprises', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('nomEntreprise');
$table->string('adresseEntreprise');
$table->timestamps();
});
Schema::create('postes', function (Blueprint $table) {
$table->increments('idPoste');
$table->unsignedBigInteger('idEntreprise');
$table->string('nomPoste');
$table->text('descriptionPoste');
$table->timestamps();
$table->foreign('idEntreprise')
->references('id')
->on('entreprises')
->onDelete('cascade');
});
public function create()
{
$postes = Poste::all();
$entreprises = Entreprise::all();
return view('postes.create', compact('postes','entreprises'));
}
public function store(Request $request)
{
$data = $request->validate([
'nomPoste'=>'required|min:3',
'descriptionPoste'=>'required|min:3'
]);
$data2 = $request->validate([
'nomEntreprise'=>'required|min:3',
'adresseEntreprise'=>'required|min:3'
]);
Poste::create($data);
Entreprise::create($data2);
return back();
}
class Poste extends Model
{
protected $fillable = ['nomPoste','descriptionPoste','idEntreprise'];
public function entreprise()
{
return $this->belongsTo(Entreprise::class,'idEntreprise');
}
}
protected $fillable = ['nomEntreprise', 'adresseEntreprise'];
public function poste()
{
return $this->hasMany(Poste::class);
}
, когда я вставляю данные через фабрику, он работает хорошо, потому что мне удается отобразить сообщение с его компанией по идентификатору. но из-за вставки у меня возникла ошибка, например: Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (projetetudiant.postes, CONSTRAINT postes_identreprise_foreign FOREIGN KEY (idEntreprise) REFERENCES entreprises (id) ON DELETE CASCADE) .
Я новичок и только что решил загрузить laravel, а я уже застрял, так что, пожалуйста, действительно нужна помощь! извините за мой engli sh я французский чувак.