Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令装置和Symfony2请求范围_Php_Symfony_Doctrine Orm_Assetic - Fatal编程技术网

Php 条令装置和Symfony2请求范围

Php 条令装置和Symfony2请求范围,php,symfony,doctrine-orm,assetic,Php,Symfony,Doctrine Orm,Assetic,我想为使用Doctrine2和symfony2.2的项目创建文章装置 以下是如何创建文章: 它们不直接链接到图像,而是包含图像名称。例如,在保存文章之前,myArticleManager解析文章文本,查找图像名称,在数据库中搜索这些图像,并用真实图像路径替换图像标记部分 This is article content typed in form and it contains an ![Image description](Here is My Awesome Image Name) 然后,当

我想为使用Doctrine2和symfony2.2的项目创建文章装置

以下是如何创建文章:

它们不直接链接到图像,而是包含图像名称。例如,在保存文章之前,my
ArticleManager
解析文章文本,查找图像名称,在数据库中搜索这些图像,并用真实图像路径替换图像标记部分

This is article content
typed in form
and it contains an
![Image description](Here is My Awesome Image Name)
然后,当提交表单并调用
ArticleManager->save($article)
时,ArticleManager将按real fileWEB路径更改图像标记:

This is article content
typed in form
![Image description](/path/to/my_awesome_image.png)
问题
ArticleManager
依赖于
Assetic assets helper
服务来构建完整的web映像路径,该服务位于
请求
范围内。另一方面,
fixture
是从CLI运行的,因此它们无法访问该服务,这使得我在加载文章fixture时无法获取图像路径


有谁能给我推荐一种最不粗俗的解决这个问题的方法吗?

好的,多亏@cheesemacfly的评论,我挖掘了一下,意识到由于我的图像存储在公共文件夹中,我根本不必使用assetic

我没有使用它来创建图像URL,而是将
路由器
服务注入我的
ArticleManager
并以以下方式生成URL:

$baseRoute = $this->router->getContext()->getBaseUrl();

$appFiles = array('/app.php', '/app_dev.php');
$baseRoute = str_replace($appFiles, '', $baseRoute);

$imageDocumentRoute = $baseRoute . '/' . $imageDocument->getWebPath();

imageDocument->getWebPath()
返回附加到保存图像的子文件夹的图像名称。例如,
subweb/path/imagename.png

尝试使用assetic时会收到什么异常消息?这些图片存储在哪里?在公用文件夹中?@piotrekkr我得到“[Symfony\Component\DependencyInjection\Exception\InactiveScopeException]您无法创建非活动范围(“请求”)的服务(“piflex\u website.article.manager”)。”@cheesemacfly是的,我将它们存储在
web/configurable/path
文件夹下。你的目标是什么?有没有一种不用$request就能找到web路径的方法?请注意,该网站可以驻留在子目录中,所以我不能只使用像“/configurable/path/image.png”这样的绝对路径