私はこのバージョンが"tymon/jwt-auth": "^[email protected]"
であるTymonのJWTを私の作曲家に使っています。Laravel/Lumen Tymon JWTの試行パラメータ
attempt
ではどのようにパラメータを渡すことができますが、実際にはSQLクエリでは使用しませんか?
現在、私は、ユーザー名とパスワードによってフィルタリングすることができるよとトークンを返します。
LoginController.php
$token = $jwt->attempt([
'username' => $request->get('username'),
'password' => md5($request->get('password'))
]);
しかし、私は、サイトごとに複数のデータベースを使用しておりますので、私はへの応用をしたいですそれが使用しているsite_codeを特定し、与えられたsite_codeでデータベースベースを設定します。
例:
私は、サイトAを使用していた場合は、サイトBならば、それはその後、database_b
など、database_a
を使用する必要があります。現在、User
モデルで使用するデータベース接続とテーブルを手動で設定できます。
例:
User.php
public function __construct()
{
$this->setConnection('database_a');
$this->setTable('users');
}
しかし、アプリケーションが別のサイトを処理するので、それは(ユーザー名とパスワードから脇)ポストにsite_code
を通過して、上のベースを使用するデータベースを決定し
site_code
。
与えられたサイトコードにデータベース接続とテーブルベースを設定するにはどうすればよいですか?
私が試したことは、このようなattempt
上のサイトコードを渡すことです:
$token = $jwt->attempt([
'username' => $request->get('username'),
'password' => md5($request->get('password')),
'siteCode => $request->get('siteCode')
]);
だから私はUser
モデルにそのように行うことができます:
public function __construct()
{
switch($this->siteCode) {
case 'A':
$this->setConnection('database_a');
break;
default:
$this->setConnection('database_b');
}
$this->setTable('users');
}
しかし、何が起こっていることがあります実際には、SQLのattempt
メソッドで渡されたパラメータを使用します。 siteCode
要求を取得し、データベース接続を決定するためにUser
モデルにそれを渡すが、それを使用しないように方法はあり
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'siteCode' in 'where clause' (SQL: select * from
ユーザーwhere
名= test and password = test and
サイトコード= A limit 1)
:だから、私にこのようなエラーが発生しますSQLクエリのために?