如何在包开发中使用Laravel/sanctum
How to use Laravel/sanctum in package development
我尝试在自定义 Laravel 包中使用 Laravel/Sanctum。
作为默认 Laravel 应用程序,我将其添加到作曲家文件中,添加了迁移并在路由文件中进行了设置。
出现下一条错误消息:
"Auth guard [sanctum] is not defined."
我希望甚至可以在另一个包中使用 sanctum?
Composer.json 文件:
"require": {
"php": "7.4.*",
"laravel/sanctum": "^2.2"
},
路线文件:
Route::group(['middleware' => 'auth:sanctum'], function () {
Route::post('/approve', ['uses' => 'MemberRequestController@response', 'response' => 'approve'])->name('approve_member_request');
}
服务提供商
/**
*
*/
private function registerRoutes()
{
Route::group($this->routeConfig(), function () {
$this->loadRoutesFrom(__DIR__ . '/../../routes/api.php');
});
}
/**
* @return string[]
*/
private function routeConfig(): array
{
return [
'prefix' => ums::path(),
'namespace' => 'martijn\UMS\Http\Controllers',
'middleware' => ['api', 'auth:sanctum']
];
}
您应该发布 Laravel\Sanctum\SanctumServiceProvider
。
它将登记失踪的守卫。
在我的案例中,问题出在 RouteServiceProvider,
默认登录被重定向到 RouteServiceProvider::HOME
和 public const HOME = '/dashboard';
我没有了,所以只用现有视图替换它。
在我手动删除文件夹 bootstrap/cache/
的内容后开始工作
没有 cache/view/routes 清除帮助
在我的主机 DirectAdmin 中,我手动重新上传了供应商文件夹,并在遇到此错误后
Auth guard [sanctum] is not defined
我重新上传了 bootstrap 文件夹。
现在一切正常。
我尝试在自定义 Laravel 包中使用 Laravel/Sanctum。 作为默认 Laravel 应用程序,我将其添加到作曲家文件中,添加了迁移并在路由文件中进行了设置。
出现下一条错误消息:
"Auth guard [sanctum] is not defined."
我希望甚至可以在另一个包中使用 sanctum?
Composer.json 文件:
"require": {
"php": "7.4.*",
"laravel/sanctum": "^2.2"
},
路线文件:
Route::group(['middleware' => 'auth:sanctum'], function () {
Route::post('/approve', ['uses' => 'MemberRequestController@response', 'response' => 'approve'])->name('approve_member_request');
}
服务提供商
/**
*
*/
private function registerRoutes()
{
Route::group($this->routeConfig(), function () {
$this->loadRoutesFrom(__DIR__ . '/../../routes/api.php');
});
}
/**
* @return string[]
*/
private function routeConfig(): array
{
return [
'prefix' => ums::path(),
'namespace' => 'martijn\UMS\Http\Controllers',
'middleware' => ['api', 'auth:sanctum']
];
}
您应该发布 Laravel\Sanctum\SanctumServiceProvider
。
它将登记失踪的守卫。
在我的案例中,问题出在 RouteServiceProvider,
默认登录被重定向到 RouteServiceProvider::HOME
和 public const HOME = '/dashboard';
我没有了,所以只用现有视图替换它。
在我手动删除文件夹 bootstrap/cache/
的内容后开始工作
没有 cache/view/routes 清除帮助
在我的主机 DirectAdmin 中,我手动重新上传了供应商文件夹,并在遇到此错误后
Auth guard [sanctum] is not defined
我重新上传了 bootstrap 文件夹。
现在一切正常。