我使用的是Laravel 8.53和Vuejs。我想根据api参数设置特定控制器的语言。(以所需语言发送密码重置电子邮件)我在api.php中有此路由,它可以工作:
Route::post('forgot-password', [NewPasswordController::class, 'forgotPassword'])->name('password.reset');现在我想创建一个类似这样的东西:
Route::post('forgot-password/{locale}', function ($locale) {App::setLocale($locale);}, [NewPasswordController::class, 'forgotPassword'])->name('password.reset');现在,当我发送到/api/forgot-password/en时,我得到了200 OK,但没有响应。我的VS代码显示了这个错误:Undefined type 'App'。我需要在api.php中定义"App“吗?多么?
发布于 2021-08-06 09:45:08
我不确定它是否相关,但可能问题出在不同的地方。将三个参数传递给post方法。根据laravel docs的说法,您应该只传递两个参数。在这种情况下,您可以传递回调,或者使用方法传递控制器路径。尝试将App::setLocale()移动到您的控制器方法,并使用您的第一个语法。记得在使用之前导入App facade。
// api.php
Route::post('forgot-password', [NewPasswordController::class, 'forgotPassword'])->name('password.reset');
// NewPasswordController.php
use \App;
class NewPasswordController {
public function forgotPassword( $locale ) {
App::setLocale( $locale );
/* rest of code */
}
}https://stackoverflow.com/questions/68679335
复制相似问题