【问题标题】:Symfony images folderSymfony 图像文件夹
【发布时间】:2015-05-22 15:03:59
【问题描述】:

我最近在我的网站上设置了上传模块。但是,我觉得将每张图片都放在一个目录中太乱了。所以我决定使用 symfony 为每个用户创建一个文件夹。用户注册后,复制并粘贴现有文件夹,然后使用名称(用户 ID)属性来区分不同的文件夹。

所以我添加了一个名为 name 的属性

private $name;

public function getUploadRootDir()
{
    return __dir__ . '/../../../../web/uploads/'. $this->getName();
}

public function getAbsolutePath()
{
    return null === $this->path ? null : $this->getUploadRootDir() . '/' . $this->path;
}

public function getWebPath($name) {

    return 'uploads/' . $name->getId() . '/' . $this->path;
}

public function getAssetPath()
{
    return 'uploads/' . $this->getName() . '/' . $this->path;
}

上传工作正常,在控制器中,我执行以下操作:

 $imageProfile->getImage()->setName($user->getId());

它上传好目录中的图片。

要显示图片,我执行以下操作:

<img  class="img-responsive"src="{{ asset(player.base.getWebPath(user)) }}" />

一切顺利,我可以看到图片,它在好文件夹中。

问题:

当我想显示图片以及编辑图片的表单时出现此错误。

警告:缺少 COC\COCBundle\Entity\Image::getWebPath() 的参数 1,在 C:\wamp\www\symfony_coc\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php 中调用在第 310 行并定义

我猜它带有我添加到 getWebPath() 方法的参数“名称”,但我不明白为什么这与供应商错误有关。 (我尝试删除并重新生成,同样的问题)

非常感谢您的帮助。

谢谢。

【问题讨论】:

  • 当你 dump() 用户时你会得到什么?
  • 福阿,谢谢你的回答。我得到了预期的结果: private 'path' (COC\COCBundle\Entity\Image) => string 'b6a762e8beb8eb314495dc51b8dca523f644e73f.jpeg' (length=45) public 'file' => null private 'iduser' (COC\COCBundle\Entity \Image) => int 1(文件为空,因为我没有在页面中提交任何内容,我只是想显示我的图片...)

标签: php image symfony upload vendor


【解决方案1】:

您的错误,它与供应商有关是正常的,因为 symfony 也在供应商中,而 PropertyAccessor 是它的组件之一,它处理访问实体的属性并尝试访问您的网络路径,但缺少 name 参数所以它生成这个错误。

也许你应该检查你是否在项目的其他地方调用了 getWebPath,然后将你的参数添加到它。

如果此行是唯一使用 getWebPath 的行,那么它可能是您的缓存,并且您的缓存仍然具有以下版本:{{ asset(player.base.getWebPath()) }} 不带参数,如果是这种情况,请尝试清除您的控制台文件夹中的缓存项目:

php app/console cache:clear --env=dev --no-warmup --no-debug

或 --env=prod 如果使用 prod(app.php)。

如果这不起作用,请尝试以下方法:

sudo rm -R app/cache/dev/twig/app/cache/prod/twig/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多