Laravel:类声明兼容错误

时间:2018-08-08 04:42:19

标签: laravel controller laravel-5.6

我正在使用laravel 5.6,当创建控制器并通过路由运行控制器时,我遇到类似的错误

App \ Http \ Controllers \ XyzController :: xyz(Illuminate \ Http \ Request $ request)的声明应与App \ Http \ Controllers \ Controller :: xyz($ job)兼容 < / p>

我的代码是

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class XyzController extends Controller
{

    public function xyz(Request $request)
    {
        return view('xyz.xyz');
    }
}

3 个答案:

答案 0 :(得分:1)

缺少路线参数:$ job

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class XyzController extends Controller
{

    public function xyz(Request $request, $job)
    {
        return view('xyz.xyz');
    }
}

答案 1 :(得分:0)

XyzController扩展的基础Controller定义了一个名为xyz的方法,该方法的签名与您要定义的签名不同。

您将需要调整XyzController中的方法以匹配基本控制器中xyz的签名,或将基本控制器调整为具有不同的签名。

问题示例:

class A
{
    public function xyz($obj) {}
}

class B extends A
{
    public function xyz(Illuminate\Http\Request $request) {}
}
  

Declaration of B::xyz(Illuminate/Http/Request $request) should be compatible with A::xyz($obj)

答案 2 :(得分:-1)

您忘记使用控制器了吗?

使用App \ Http \ Controllers \ Controller作为控制器