我最近在我的网站上设置了上传模块。但是,我觉得将每张图片都放在一个目录中太乱了。所以我决定使用 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,在第 310 行的 C:\wamp\www\symfony_coc\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php 中调用并定义
我猜它带有我添加到 getWebPath() 方法的参数“名称”,但我不明白为什么这与供应商错误有关。(我尝试删除并再次生成它,同样的问题)
您的帮助将不胜感激。
谢谢你。