Symfony Bundle添加控制器报错:无法解析$returnController参数
问题解决步骤
1. 修正服务配置的命名空间
你的控制器命名空间是verzeilberg\UploadImagesBundle\Controller\Crop,但服务配置里写的是UploadImagesBundle\Controller\Crop,缺少verzeilberg前缀导致服务未正确注册。修改src/Resources/config/services.yaml:
verzeilberg\UploadImagesBundle\Controller\Crop: resource: '../../src/Controller/Crop' tags: ['controller.service_arguments']
2. 处理$returnController参数解析问题
Symfony无法自动解析无类型提示的$returnController参数,根据实际场景调整:
- 如果是路由参数:在路由配置中定义该参数,示例:
upload_images_crop: path: /crop/{returnController} controller: verzeilberg\UploadImagesBundle\Controller\Crop\CropController::crop - 如果是服务类:给参数添加类型提示,让Symfony通过依赖注入解析:
// 假设ReturnController是你的服务类 public function crop(ReturnController $returnController, Request $request) { // ... } - 如果是请求参数:通过
Request对象直接获取,移除方法中的$returnController参数:public function crop(Request $request) { $returnController = $request->get('returnController'); // ... }
3. 确保服务配置正确加载
检查UploadImagesExtension.php,补充配置加载语句(现有代码仅初始化了loader,未加载配置文件):
$loader->load('config/services.yaml');
内容的提问来源于stack exchange,提问作者ViceStar
相关产品推荐
相关产品推荐

