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

18

我是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();
    ...
}

错误:

在 UsersController.php 的第24行发生了致命的错误:调用未定义的方法Illuminate\Support\Facades\Request::input()

1个回答

38

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

use Illuminate\Http\Request;

否则您的控制器将从全局命名空间注入Request类的实例,该命名空间是Illuminate\Support\Facades\Request的别名。


1
抱歉问一个新手问题,但我认为所有公共方法都可以使用门面访问? - Fahmi
3
没错,但只有在以静态方式调用给定的方法时才起作用,例如 Request::input()。只有静态调用会被转发到位于门面背后的对象的实例方法。 - jedrzej.kurylo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接