我正在使用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');
}
}
答案 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作为控制器