Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день! Начал осваивать Laravel, не получаться передать запись "много ко многим".
Если кто-то добрый человек поможет, буду крайне благодарен! Заранее спасибо!
Выдает такую вот ошибку "SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`renot`.`client_moreinfoclient`, CONSTRAINT `client_moreinfoclient_moreinfoclient_id_foreign` FOREIGN KEY (`moreinfoclient_id`) REFERENCES `moreinfoclients` (`id`) ON DELETE CASCADE) (SQL: insert into `client_moreinfoclient` (`client_id`, `moreinfoclient_id`) values (11, 543))"
У меня следующие данные
Schema::create('clients', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
Schema::create('moreinfoclients', function (Blueprint $table) {
$table->increments('id');
$table->string('nameinput');
$table->string('valueinput');
$table->timestamps();
});
Schema::create('client_moreinfoclient', function(Blueprint $table) {
$table->integer('client_id')->unsigned()->index();
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
$table->integer('moreinfoclient_id')->unsigned()->index();
$table->foreign('moreinfoclient_id')->references('id')->on('moreinfoclients')->onDelete('cascade');
$table->timestamps();
});
class Client extends Model
{
protected $fillable = [
'name'
];
public function clientmoreinfo()
{
return $this->belongsToMany('App\Moreinfoclient');
}
}
class Moreinfoclient extends Model
{
protected $fillable = [
'nameinput',
'valueinput'
];
public function clients()
{
return $this->belongsToMany('App\Client');
}
}
ну и сам контроллер
public function create()
{
$moreinfoclient = Moreinfoclient::lists('nameinput', 'valueinput', 'id');
return view('clients.create', compact('moreinfoclient'));
}
public function store(Request $request)
{
$this->createMore($request);
return redirect('clients');
}
private function createMore(Request $request)
{
$client = Client::create($request->all());
$client->clientmoreinfo()->attach($request->input('nameinput'));
return $client;
}
Не в сети
У Вас же в ошибке уже все сказано - проблема с foreign ключом (ссылка из одной таблицы на другую)
Значение moreinfoclient_id не стоит или указывает на несуществующий row
Не в сети
Страницы 1