问题
似乎我的API处理控制器无法处理注入的Request
对象。详情如下。
我的 api.php 路线文件中有一条路线:
Route::namespace('Mailing')->prefix('mailing/webhook')->group(function () {
Route::post('open', 'WebhookController@getOpened');
});
在 WebhookController.php 中,有一个带有注入Request
对象的构造函数:
use Illuminate\Http\Request;
public function __construct(Request $request) {
// Log it in the database
Logger::info('constructor called...');
// Filter the input in the injected Request
$this->input = $this->getFilteredInput($request);
}
现在,当我将此代码部署到服务器并对我的端点进行API调用时,__construct()
方法开头的日志消息甚至都没有被触发。我也没有存储在数据库中的数据(如果正确处理了webhook,就会发生这种情况)。
我测试了什么
但是,当我在 web.php 路线文件中创建虚拟路线时:
Route::post('open', 'WebhookController@getOpened');
然后创建一个表单并对POST
方法进行getOpened()
调用 - 所有方法都按预期工作:我注入Request
并可以操作它。
我查了一下:
use
语句
WebhookController
问题
为什么 api.php 路由失败? Laravel's dependency injection不适用于API处理控制器吗?