【发布时间】:2013-05-18 21:41:34
【问题描述】:
我想为使用 Doctrine2 和 Symfony 2.2 的项目创建文章固定装置。
文章的创建方式如下:
它们不直接链接到图像,而是包含图像名称。例如,在保存文章之前,我的ArticleManager 会解析文章文本、查找图片名称、在数据库中搜索这些图片并将图片标记部分替换为真实图片路径。
This is article content
typed in form
and it contains an

然后当提交表单并调用ArticleManager->save($article)时,文章管理器通过真实文件WEB路径更改图像标记:
This is article content
typed in form

问题:ArticleManager 依赖 Assetic assets helper 服务来构建完整的网络图像路径,并且该服务位于 request 范围内。另一方面,Doctrine fixtures 是从 CLI 运行的,因此他们无法访问该服务,这使我在加载文章夹具时无法获取图像路径。
谁能建议我解决这个问题的最不hackish的方法?
【问题讨论】:
-
您在尝试使用资产时收到什么异常消息?
-
你把这些照片存放在哪里?在公共文件夹中?
-
@piotrekkr 我得到`[Symfony\Component\DependencyInjection\Exception\InactiveScopeException] 您无法创建非活动范围(“请求”)的服务(“piflex_website.article.manager”)。`
-
@cheesemacfly 是的,我将它们存储在
web/configurable/path文件夹下。你的目标是什么?有没有办法在没有 $request 的情况下找出网络路径?请注意,网站可以驻留在子目录中,所以我不能只使用像“/configurable/path/image.png”这样的绝对路径。
标签: php symfony doctrine-orm assetic