0

こんばんは。ユーザーモデルと移行にブールフィールド「privacy_ok」を追加しました。

移行ファイル

 Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name',100)->nullable();
        $table->string('last_name',100)->nullable();
        $table->string('email');
        $table->string('password');
        $table->boolean('privacy_ok')->default(0);
        $table->text('permissions')->nullable();
        $table->timestamp('last_login')->nullable();
        $table->timestamps();

        $table->engine = 'InnoDB';
        $table->unique('email');
    });

App\User.php

class User extends Authenticatable
{
use Notifiable;

protected $fillable = [
    'first_name','last_name','email', 'password', 'privacy_ok'
];

....

ユーザーを登録しようとすると、新しいフィールドがスキップされます。

$user = Sentinel::register($request->all());

エラー (メールアドレスの重複など) が発生した場合、INSERT クエリに「privacy_ok」フィールドが表示されることに気付きました。

それを解決する方法はありますか?

User::create を使用し、それを Cartalyst Sentinel オブジェクトに「変換」して、他のすべての操作 (アクティベーションなど) を続行する必要がありますか?

ありがとう

編集

ここでいくつかの情報を見つけました Laravel Cartalyst Sentinel - ユーザー名列をユーザーテーブルに追加します (正しい方法は何ですか)

これで新しいファイル App\Models\Cartalyst\User.php が作成されましたが、それを cartalyst 構成ファイル ( config/cartalyst.sentinel.php ) に追加すると、エラーが発生します。

'users' => [
    // 'model' => 'Cartalyst\Sentinel\Users\EloquentUser',
    'model' => 'App\Models\Cartalyst\User',
],

名前が既に使用されているため、クラス User を宣言できません

もちろん、User を Lorem に変更しても、ユーザーはそこにいます。ネーミングの問題ではありません。

解決 しよう 新しいクラスのヘッダーで名前空間を宣言するのを忘れていました! :(

4

0 に答える 0