Недавно я установил модуль загрузки на своем веб-сайте. Однако мне кажется, что помещать все изображения в один каталог - это слишком беспорядочно. Поэтому я решил создать по одной папке для каждого пользователя с помощью symfony. После регистрации пользователя скопируйте и вставьте существующую папку, а затем поработайте с атрибутом имени (идентификатора пользователя), чтобы различать разные папки.
Итак, я добавил атрибут с именем 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)) }}" />
С этим все работает плавно, я вижу картинку, и она находится в хорошей папке.
Проблема:
Я получаю эту ошибку, когда хочу отобразить изображение, а также форму для редактирования изображения.
Предупреждение: отсутствует аргумент 1 для COC \ COCBundle \ Entity \ Image :: getWebPath (), вызываемого в C: \ wamp \ www \ symfony_coc \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ PropertyAccess \ PropertyAccessor.php в строке 310 и определил
Я предполагаю, что он идет с параметром name, который я добавил к методу getWebPath (), но я не понимаю, почему это связано с ошибкой поставщика. (Я попытался удалить и сгенерировать его снова, та же проблема)
Ваша помощь будет очень признательна.
Спасибо.