1

我正在尝试了解有关 Slim PHP 中 Cartalyst Sentinel 的更多信息,以进行用户注册和身份验证。我有点超出我的深度,因为我过去没有尝试过这种类型的事情。

我一直在关注本教程,了解如何在 Slim 中实现 Sentinel:

使用 Sentinel 消除用户身份验证的痛苦

我已经按照说明进行了所有工作,但是现在我想开始进行一些更改,以要求在注册过程中捕获更多数据;用户名、出生日期、国家选择。

我在 users 表中添加了附加列,并添加了所需的表单字段并更新了控制器中的代码:

    $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,
        ],
    ]);

但是,没有额外的数据存储在数据库表中。从 Naomi Aro 对以下链接的进一步阅读看来,我需要更新用户模型,我已经完成了,但不相信我做得正确!

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 的。

Laravel Cartalyst Sentinel - 向用户表添加用户名列(正确的方法是什么)

我不确定如何进行,有没有人有任何想法或建议?

谢谢!!

4

0 回答 0