1

ユーザーのサインアップと認証のために、Slim PHP の Cartalyst Sentinel について詳しく学ぼうとしています。過去にこの種のことを試みたことがないので、私は少し深みがありません。

Sentinel を Slim に実装する方法については、このチュートリアルに従っています。

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 - users テーブルにユーザー名列を追加する (正しい方法は何ですか)

進め方がわかりません。誰かアイデアや提案はありますか?

ありがとうございました!!

4

0 に答える 0