サブドメインに基づく認証に複数のテーブルを使用しようとしています。したがって、実行時にSentinelのsetModel
関数を使用してモデルインスタンスを設定しようとしています。私のルートでそうLaravel Sentinel setModelが間違ったテーブルにアクセスしています
私が持っているいくつかの単純な論理ファイル:ロジックは1つのURLであること
if (Request::getHost() == $url) {
Sentinel::getUserRepository()->setModel('App\Client');
} else {
Sentinel::getUserRepository()->setModel('App\User');
}
は、一つのモデルを使用し、他は他のモデルを使用しています。私は私のようなリターンを得るdd(Sentinel::getUserRepository());
行うことでApp\Client
をロードしようとしていたときに今、:
IlluminateUserRepository {#113 ▼
#hasher: NativeHasher {#114}
#model: "App\Client"
#dispatcher: Dispatcher {#23 ▶}
#dispatcherStatus: true
}
を私はSentinel::getUser();
を呼び出すときに、しかし、私は次のような出力が残されています
EloquentUser {#230 ▼
#table: "users"
#fillable: array:5 [▶]
#hidden: array:1 [▶]
#persistableKey: "user_id"
#persistableRelationship: "persistences"
#loginNames: array:1 [▶]
#connection: "mysql"
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:12 [▶]
#original: array:12 [▶]
#casts: []
#dates: []
#dateFormat: null
#appends: []
#events: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#visible: []
#guarded: array:1 [▶]
#permissionsInstance: null
}
App\Client
モデルではなくApp\User
モデルを指しています。
なぜ、私は参照しようとしているモデルを見てSentinelの機能を得ることができないようです。
私のクライアントモデルが参考になりました。
namespace App;
class Client extends \Cartalyst\Sentinel\Users\EloquentUser
{
/**
* The fields for sentinel to authenticate (login)
*
* @var array
*/
protected $loginNames = ['email'];
/**
* The table associated with model.
*
* @var String
*/
protected $table = 'clients';
/**
* Used for mass assignment fields.
*
* @var Array
*/
protected $fillable = ['email', 'password', 'permissions', 'last_login', 'first_name', 'last_name'];
}
あなたはイムは、私が何をしようとしています何を達成していない見ることができますしかし、私は、GitHubのWikiのからthis guideを使用しています。
ランタイム中にモデルを設定するこの方法を使用し、すべてのセンチネルコマンドで正しいモデルを使用するにはどうすればよいですか?