Я пытаюсь узнать больше о Cartalyst Sentinel в Slim PHP для регистрации пользователей и аутентификации. Я немного не в себе, потому что я не пытался делать подобные вещи в прошлом.
Я следовал этому руководству о том, как реализовать Sentinel в Slim:
Устранение боли аутентификации пользователя с помощью Sentinel
У меня все работает, как объяснено, однако теперь я хочу немного изменить вещи, чтобы потребовать дополнительные данные, полученные в процессе регистрации; имя пользователя, дата рождения, выбор страны.
Я добавил дополнительные столбцы в таблицу пользователей, добавил необходимые поля формы и обновил код в контроллере:
$user = $app->container->sentinel->create([
'first_name' => $data['firstname'],
'last_name' => $data['lastname'],
'username' => $data['username'],
'dob' => $data['dob'],
'country' => $data['country'],
'email' => $data['email'],
'password' => $data['password'],
'permissions' => [
'user.delete' => false,
],
]);
Однако никакие дополнительные данные не хранятся в таблице базы данных.
Из дальнейшего прочтения ссылки Наоми Аро, представленной ниже, кажется, что мне нужно обновить модель пользователей, что я и сделал, но не верю, что сделал правильно!
Несколько атрибутов входа с помощью Sentinel и Laravel
namespace app\models\Users;
use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;
class Users extends SentinelUser
protected $fillable = [
'email',
'username',
'dob',
'country',
'password',
'last_name',
'first_name',
'permissions',
];
protected $loginNames = ['email', 'username'];
Мне нужна моя модель в файле index.php, но она, похоже, не подобрана, поэтому я предполагаю, что не правильно ее внедряю в Sentinel?
$app = new \Slim\Slim(array(
'users' => [
'model' => 'app/models/Users',
]
));
Я также нашел этот пост, который касается той же проблемы, но специфичен для Laravel.
Я не уверен, как поступить, у кого-нибудь есть идеи или предложения?
Спасибо!!
Задача ещё не решена.
Других решений пока нет …