我正在尝试拥有一个 APIController,它提供与 laravel 的默认路由控制器相同的功能,如下所示
//Routes.php
Route::resource('keys', 'KeysController');
Route::resource('SomeOther', 'SomeOtherController');
abstract class APIController extends Controller {
public function store()
{
return $this->respondNotSupported();
}
}
class KeysController extends APIController {
public function store(KeysRequest $request)
{
$input = Request::all();
$newkey = Key::create($input);
return $newkey->id;
}
}
class SomeOtherController extends APIController {
public function store(SomeOtherRequest $request)
{
$input = Request::all();
$newkey = SomeOtherModel::create($input);
return $newkey->id;
}
}
所以我想交换类,就像 laravel 可以接受 FormRequest 中的任何类作为 store 方法一样
但我得到以下错误,
Declaration of App\Http\Controllers\KeysController::store() should be compatible with App\Http\Controllers\APIController::store()
这很好,因为签名不匹配。那么我该如何实现呢?我在哪里可以找到 laravel 是如何接受任何类型的论点的。