Php Laravel/Lumen Tymon JWT尝试参数
我使用的是Tymon的JWT in lumen版本>Php Laravel/Lumen Tymon JWT尝试参数,php,laravel,laravel-5,jwt,lumen,Php,Laravel,Laravel 5,Jwt,Lumen,我使用的是Tymon的JWT in lumen版本>“Tymon/JWT auth”:“^1。0@dev“在我的作曲家上 如何在尝试中传递参数,但在sql查询中不实际使用它 目前,我可以通过用户名和密码进行筛选,并将返回令牌: LoginController.php $token = $jwt->attempt([ 'username' => $request->get('username'), 'password' => md5($request->
“Tymon/JWT auth”:“^1。0@dev“
在我的作曲家上
如何在尝试中传递参数,但在sql查询中不实际使用它
目前,我可以通过用户名和密码进行筛选,并将返回令牌:
LoginController.php
$token = $jwt->attempt([
'username' => $request->get('username'),
'password' => md5($request->get('password'))
]);
但是,由于每个站点使用多个数据库,我希望应用程序确定它使用的站点代码,并根据给定的站点代码设置数据库
例如:
如果我使用的是站点A,它应该使用数据库A
,如果是站点B,则使用数据库B
等等。目前,我可以手动设置要在用户
模型上使用的数据库连接和表
例如:
User.php
public function __construct()
{
$this->setConnection('database_a');
$this->setTable('users');
}
但由于应用程序处理不同的站点,因此它会在post上传递site\u代码
(用户名和密码除外),并根据site\u代码
确定要使用哪个数据库
如何根据给定的站点代码设置数据库连接和表基
我尝试的是在尝试中传递站点代码,如下所示:
$token = $jwt->attempt([
'username' => $request->get('username'),
'password' => md5($request->get('password')),
'siteCode => $request->get('siteCode')
]);
因此,我可以在用户
模型上这样做:
public function __construct()
{
switch($this->siteCode) {
case 'A':
$this->setConnection('database_a');
break;
default:
$this->setConnection('database_b');
}
$this->setTable('users');
}
但实际情况是,它实际上使用了传递给sql的trunt
方法的参数。所以它给了我一个这样的错误:
$token = $jwt->attempt([
'username' => $request->get('username'),
'password' => md5($request->get('password')),
'siteCode => $request->get('siteCode')
]);
SQLSTATE[42S22]:未找到列:“where子句”(SQL:select*from
userswhere
username=test和password=test和
siteCode=A limit 1)中的1054未知列“siteCode”
有没有办法获取siteCode
请求并将其传递给用户
模型,以确定数据库连接,但不将其用于sql查询?我找到了这样做的方法。但我想知道这是正确的方法还是有其他“正确的方法”可以做到这一点?如果多个站点和数据库的数据库结构相同,则可以使用一个API来处理这些站点和数据库。这方面的一个例子是博客网站,这些网站拥有相同的数据库结构,并且共享相同的服务
User.php(模型)