2

我想在上传文件后生成缩略图。对于图像处理,我使用 Avalanche123 的 ImagineBundle。

我尝试在实体中使用代码:

        $avalancheService = $this->get('imagine.cache.path.resolver');
        $avalancheService->getBrowserPath($this->getUploadRootDir().'/'.$path.'/'.$extn[0].'.jpg', 'avatar');

但这无济于事。我能做些什么?

4

2 回答 2

1

在这条线上,您尝试获得服务:$this->get('imagine.cache.path.resolver').

但是您遵循的代码示例应该在控制器中执行。get()实体中没有方法,控制器从Controller所有控制器都应该扩展的类继承它。所以调用$this->get()一个实体是没有意义的。

这是设计使然。Symfony 中的实体应该是哑的,只代表它们拥有的数据。

正确的做法是要么在你​​的控制器中调整大小,要么创建一个服务,注入imagine.cache.path.resolver它并从你的控制器中调用它。

于 2014-12-12T08:36:21.803 回答
0

在 twig 中使用 dump(var) 检查变量。也许 $extn[0] 没有正确的文件或没有设置。尝试输出完整的 getBrowserPath 字符串以确保它是准确的。

于 2014-02-24T16:31:21.143 回答