【问题标题】:"Undefined type 'App'" in api.php Laravelapi.php Laravel 中的“未定义类型‘App’”
【发布时间】:2021-10-11 05:10:16
【问题描述】:

我正在使用 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”吗?怎么样?

【问题讨论】:

  • 试试这个:app()->setLocale($locale)
  • 给一个\作为\App::setLocale($locale)

标签: php laravel laravel-8


【解决方案1】:

我不确定它是否相关,但问题可能出在不同的地方。您将三个参数传递给 post 方法。根据laravel docs 你应该只通过两个。在这种情况下,您传递回调,或者使用方法传递控制器路径。尝试将 App::setLocale() 移动到您的控制器方法并使用您的第一个语法。使用前记得导入App门面。

// 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 */
    }
}

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2021-05-13
    • 2022-06-13
    • 2022-12-23
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多