Laravel如何更改passport表名称以大写字母开头?
我正在尝试构建和API,我正在使用passport进行身份验证,问题是我希望所有表名以大写字母开头,例如“Oauth”而不是“Oauth”,如何在不直接修改供应商文件的情况下实现这一点?您不能直接修改表名,但可以修改passport使用的模型名。 如果查看Laravel如何更改passport表名称以大写字母开头?,laravel,laravel-7,laravel-passport,Laravel,Laravel 7,Laravel Passport,我正在尝试构建和API,我正在使用passport进行身份验证,问题是我希望所有表名以大写字母开头,例如“Oauth”而不是“Oauth”,如何在不直接修改供应商文件的情况下实现这一点?您不能直接修改表名,但可以修改passport使用的模型名。 如果查看PassportClass,则存在静态类变量: /** * The auth code model class name. * * @var string */ public stati
Passport
Class,则存在静态类变量:
/**
* The auth code model class name.
*
* @var string
*/
public static $authCodeModel = 'Laravel\Passport\AuthCode';
/**
* The client model class name.
*
* @var string
*/
public static $clientModel = 'Laravel\Passport\Client';
/**
* The personal access client model class name.
*
* @var string
*/
public static $personalAccessClientModel = 'Laravel\Passport\PersonalAccessClient';
/**
* The token model class name.
*
* @var string
*/
public static $tokenModel = 'Laravel\Passport\Token';
/**
* The refresh token model class name.
*
* @var string
*/
public static $refreshTokenModel = 'Laravel\Passport\RefreshToken';
等等。
passport使用这些模型与数据库通信。您可以制作自己的模型并扩展Passport模型
例如:
class MyOwnAuthCodeModel extends Laravel\Passport\AuthCode {
public $table = 'Auth_codes';
}
然后在PassportServiceProvider
文件中,您必须更改型号:
Passport::$clientModel = '\App\Models\MyOwnAuthCodeModel';
...
然后,您必须创建迁移文件以重命名所有passport表:
Schema::rename('oauth_codes', 'Oauth_codes');
...
如果您不想在供应商迁移和模型中更改表名,那么这些步骤就太多了
它可以正常工作了
请记住,您必须对所有passport表和模型执行此操作
当您安装passport时,它会生成一个迁移文件,转到该迁移文件,并根据您的需要更改表的名称。我相信您最终会遇到很多问题。实际原因是什么?如何访问PassportServiceProvider?我的意思是“那么在PassportServiceProvider文件中,您必须更改模型”在哪个文件中?没有护照服务提供商哦,对不起。我的意思是
RouteServiceProvider
或AppServiceProvider
取决于您将passport路由放置在何处