У меня есть две таблицы Пользователи и сообщения. вот мой Пользователь таблица миграции файла:Laravel 5 вставка строки с внешним ключом
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->string('password_temp',60);
$table->integer('active');
$table->string('code',60);
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
и вот мой файл миграции сообщений таблица
public function up()
{
Schema::create('posts', function(Blueprint $table){
$table->increments('id');
$table->string('title');
$table->text('body');
$table->integer('user_id')->unsigned();
$table->string('slug');
$table->timestamps();
});
Schema::table('posts',function(Blueprint $table){
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
}
AdminPostsController расширяет контроллер { общественные функции магазина (Request $ запрос) {
$validator = Validator::make($request->all(),Post::$rules);
if($validator->passes()){
$post = new Post();
$post->title = $request->get('title');
$post->body = $request->get('body');
$post->user_id = $request->get('id');
$post->slug = Slug::generateSlug($request->get('title'));
$post->save();
return Redirect::route('admin.posts.index');
}
else{
return Redirect::route('admin.posts.create')->withErrors($validator)->withInput();
}
}
Каждый раз, когда я вставить новый пост, я всегда вижу следующее сообщение об ошибке «QueryException in Connection.php line 614: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
блог .
сообщений , CONSTRAINT
posts_user_id_foreign FOREIGN KEY (
user_id ) REFERENCES
пользователей (
ID ) ON DELETE CASCADE ON UPDATE CASCADE)
» я хотел бы знать, что я делаю неправильно.
Похоже, вы не ввели сообщение с действительным 'user_id'. Можете ли вы показать нам, как вы создаете новый пост? – lukasgeiter
Я просто добавил функцию магазина @lukasgeiter –
Вместо того, чтобы устанавливать 'user_id' и' slug' в '$ post', вы делаете это на' $ request' – lukasgeiter