Php Laravel/Lumen Tymon JWT尝试参数

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 in lumen版本>
“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
users
where
username
=test和password=test和
siteCode
=A limit 1)中的1054未知列“siteCode”


有没有办法获取
siteCode
请求并将其传递给
用户
模型,以确定数据库连接,但不将其用于sql查询?

我找到了这样做的方法。但我想知道这是正确的方法还是有其他“正确的方法”可以做到这一点?如果多个站点和数据库的数据库结构相同,则可以使用一个API来处理这些站点和数据库。这方面的一个例子是博客网站,这些网站拥有相同的数据库结构,并且共享相同的服务

User.php(模型)