Папка с изображениями Symfony

Я недавно настроил модуль загрузки на своем сайте. Тем не менее, я чувствую, что это слишком грязно, чтобы поместить все фотографии в один каталог. Поэтому я решил создать одну папку для каждого пользователя с помощью Symfony. Как только пользователь будет зарегистрирован, скопируйте и вставьте существующую папку, а затем работайте с атрибутом имени (идентификатора пользователя), чтобы различать разные папки.

Поэтому я добавил атрибут с именем

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 (), но я не понимаю, почему это связано с ошибкой поставщика. (Я попытался удалить и сгенерировать его снова, та же проблема)

Ваша помощь будет очень признательна.

Спасибо.

0

Решение

Ваша ошибка, это нормально, что она связана с вендором, так как 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/

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]