Laravel по-русски
      
      
    Русское сообщество разработки на 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