こんばんは。ユーザーモデルと移行にブールフィールド「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 に変更しても、ユーザーはそこにいます。ネーミングの問題ではありません。
解決 しよう 新しいクラスのヘッダーで名前空間を宣言するのを忘れていました! :(