Я не могу добавить поля в профиль, это дает ошибку, что это дочерний элемент, и вы не можете добавить в него данные, ошибка такая: < /p>
Cannot add or update a child row: a foreign key constraint fails (`mypart`.`profile`, CONSTRAINT `profile_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE)
< /code>
Оказывается, что мой вопрос заключается в том, что когда пользователь регистрируется, в дополнение к пользователю, создается профиль, который связан с user_id, но я не могу сделать это, независимо от того, насколько я пытаюсь < /p>
У меня есть база данных, вот его миграции (профиль): < /p>
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 10,
'unsigned' => true,
'auto_increment' => true,
],
'firstname' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'lastname' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'email' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'phone' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'description' => [
'type' => 'TEXT',
'constraint' => '128',
'null' => true,
],
'date_birth' => [
'type' => 'DATE',
'null' => true,
],
'avatar' => [
'type' => 'TEXT',
'null' => true,
],
'user_id' => [
'type' => 'int',
'constraint' => 11,
'unsigned' => true,
'null' => false,
],
]);
$this->forge->addForeignKey('user_id', 'user', 'id', '', 'CASCADE');
$this->forge->addPrimaryKey('id')->addUniqueKey('user_id');;
$this->forge->createTable('profile');
}
public function down()
{
$this->forge->dropTable('profile');
}
< /code>
Пользовательская миграция: < /p>
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 10,
'unsigned' => true,
'auto_increment' => true,
],
'name' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => false,
],
'password_hash' => [
'type' => 'VARCHAR',
'constraint' => '255',
'null' => false,
]
]);
$this->forge->addPrimaryKey('id')->addUniqueKey('name');
$this->forge->createTable('user', true);
}
public function down()
{
$this->forge->dropTable('user');
}
< /code>
Регистрация контроллера (задача при создании пользователя - это создание отдельного профиля): < /p>
public function create_account()
{
$name = $this->request->getPost('name');
$password = $this->request->getPost('name');
$avatar = $this->request->getPost('avatar');
if ($this->model->insert(['name' => $name, 'password' => $password])) {
$login = $this->model->where('name', $name)->first();
$session = session();
$session->set('user_id', $login->id);
$session->set('user_name', $login->name);
if ($this->profile_model->insert(['avatar' => $avatar]) && session()->has('user_id')) {
return redirect()->to('/home')->with('success', ['Вы успешно авторизовались']);
}
} else {
return redirect()->back()->with('errors', $this->model->errors())->with('warning', 'Invalid data')->withInput();
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... is-foreign
Как перенести поля в базу данных, где одно поле иностранцы? ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1752047899
Anonymous
Я не могу добавить поля в профиль, это дает ошибку, что это дочерний элемент, и вы не можете добавить в него данные, ошибка такая: < /p>
Cannot add or update a child row: a foreign key constraint fails (`mypart`.`profile`, CONSTRAINT `profile_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE)
< /code>
Оказывается, что мой вопрос заключается в том, что когда пользователь регистрируется, в дополнение к пользователю, создается профиль, который связан с user_id, но я не могу сделать это, независимо от того, насколько я пытаюсь < /p>
У меня есть база данных, вот его миграции (профиль): < /p>
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 10,
'unsigned' => true,
'auto_increment' => true,
],
'firstname' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'lastname' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'email' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'phone' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => true,
],
'description' => [
'type' => 'TEXT',
'constraint' => '128',
'null' => true,
],
'date_birth' => [
'type' => 'DATE',
'null' => true,
],
'avatar' => [
'type' => 'TEXT',
'null' => true,
],
'user_id' => [
'type' => 'int',
'constraint' => 11,
'unsigned' => true,
'null' => false,
],
]);
$this->forge->addForeignKey('user_id', 'user', 'id', '', 'CASCADE');
$this->forge->addPrimaryKey('id')->addUniqueKey('user_id');;
$this->forge->createTable('profile');
}
public function down()
{
$this->forge->dropTable('profile');
}
< /code>
Пользовательская миграция: < /p>
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 10,
'unsigned' => true,
'auto_increment' => true,
],
'name' => [
'type' => 'VARCHAR',
'constraint' => '128',
'null' => false,
],
'password_hash' => [
'type' => 'VARCHAR',
'constraint' => '255',
'null' => false,
]
]);
$this->forge->addPrimaryKey('id')->addUniqueKey('name');
$this->forge->createTable('user', true);
}
public function down()
{
$this->forge->dropTable('user');
}
< /code>
Регистрация контроллера (задача при создании пользователя - это создание отдельного профиля): < /p>
public function create_account()
{
$name = $this->request->getPost('name');
$password = $this->request->getPost('name');
$avatar = $this->request->getPost('avatar');
if ($this->model->insert(['name' => $name, 'password' => $password])) {
$login = $this->model->where('name', $name)->first();
$session = session();
$session->set('user_id', $login->id);
$session->set('user_name', $login->name);
if ($this->profile_model->insert(['avatar' => $avatar]) && session()->has('user_id')) {
return redirect()->to('/home')->with('success', ['Вы успешно авторизовались']);
}
} else {
return redirect()->back()->with('errors', $this->model->errors())->with('warning', 'Invalid data')->withInput();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79695283/how-to-transfer-fields-to-a-database-where-one-field-is-foreign[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия