Kohana создать пользователя с ролью

#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. дело в том, что сначала мне нужно сохранить пользователя, чтобы получить вновь созданный (и уже автоматически увеличенный) Идентификатор, так что я могу присвоить роли этот идентификатор, но я думаю, что есть способ, чтобы все это работало автоматически, а не вручную, как я делаю это сейчас