#php #kohana
#php #kohana
Вопрос:
$user = ORM::factory('User');
$user->username = 'test';
$user->email = 'test@test.com';
$user->password = 'test';
$role = ORM::factory('Role')->where('name', '=', 'login')->find();
$user->add('roles', $role);
$user->save();
Я получаю сообщение об ошибке:
Column 'user_id' cannot be null
как я могу заполнить user_id, если я еще даже не создал пользователя?, не могу найти никакого объяснения этому
Ответ №1:
Вашей таблице базы данных (которая, как я предполагаю, называется «пользователи») необходим идентификатор с автоматическим увеличением. Если поле user_id автоматически увеличивается, вам не придется заполнять поле user_id, поскольку оно сделает это за вас. В phpMyAdmin на вкладке структура при редактировании атрибута установлен флажок с надписью A_I.
Комментарии:
1. Ошибка исходит из API базы данных или из используемого вами фреймворка? Потому что, если он поступает из API (mysqli или PDO), тогда он не увеличивается автоматически.
2. дело в том, что сначала мне нужно сохранить пользователя, чтобы получить вновь созданный (и уже автоматически увеличенный) Идентификатор, так что я могу присвоить роли этот идентификатор, но я думаю, что есть способ, чтобы все это работало автоматически, а не вручную, как я делаю это сейчас