Laravel Request :: input调用未定义的方法

Tom*_*410 12 php laravel laravel-5

我是Laravel框架的新手,现在在尝试更新记录的用户信息时遇到问题.

路线:

Route::post('/user/{id}', function (Request $request, $id) {
    return App\Http\Controllers\UsersController::update($request, $id);
});

public static function update($request, $id)
{
    $user = User::find($id);
    $user->name = $request->input('name');
    ...
    $user->save();
    ...
}
Run Code Online (Sandbox Code Playgroud)

错误:

UsersController.php第24行中的FatalErrorException:调用未定义的方法Illuminate\Support\Facades\Request :: input()

jed*_*ylo 22

在文件顶部添加以下导入:

use Illuminate\Http\Request;
Run Code Online (Sandbox Code Playgroud)

否则你的控制器会从全局命名空间中注入Request类的实例,该命名空间是Illuminate\Support\Facades\Request ./ 的别名.

  • 确实如此,但这仅在您静态调用给定方法时才有效,例如“Request::input()”。只有静态调用被转发到门面后面的对象的实例方法。 (2认同)