【问题标题】:Laravel Illuminate\Http\Request::input() should not be called statically [duplicate]Laravel Illuminate\Http\Request::input() 不应该被静态调用 [重复]
【发布时间】:2021-03-06 06:13:24
【问题描述】:

我正在尝试调用: session(['cor_id' => Request::input('cor_id')]); 在我的控制器中的创建函数上,但我得到了以下错误:(我使用的是 Laravel 6)

不应静态调用非静态方法 Illuminate\Http\Request::input()

任何帮助如何以正确的方式最好地解决这个问题

【问题讨论】:

  • 轻松使用 $request->input('core_id') 获取数据

标签: php laravel laravel-6


【解决方案1】:

您需要使用 Facade,Illuminate\Support\Facades\Request 也可用作 Request,如果您想像这样静态调用方法,因为 Facade 是请求 Illuminate\Http\Request 实例的静态代理。

use Request;
// or
use Illuminate\Support\Facades\Request;

Request::input(...);

否则您可能希望使用Illuminate\Http\Request 的实例,因为您可以将它注入到您的控制器方法中:

use Illuminate\Http\Request;

public function something(Request $request, ...)
{
    ...
    session(['cor_id' => $request->input('cor_id')]);
    ...
}

【讨论】:

  • 同样,我已经尝试过您的解决方案,并且效果也很好
【解决方案2】:

不应静态调用非静态方法 Illuminate\Http\Request::input()

应该调用方法Illuminate\Http\Request::input()

$request->input('cor_id');

参考: https://laravel.com/docs/6.x/requests#retrieving-input

【讨论】:

    【解决方案3】:

    请求类的input方法不是静态方法,你应该从请求实例中调用它。

    您可以像这样使用app('request') 获取当前请求:

     $currentRequest =app('request')
    session(['cor_id' => $currentRequest->input('cor_id')]);
    

    【讨论】:

    • 我已经尝试过你的解决方案,它正在工作
    猜你喜欢
    • 2015-04-18
    • 2015-04-09
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2015-05-28
    • 2021-05-31
    • 2018-10-10
    相关资源
    最近更新 更多