Symfony 3

symfony FOSUserBundle - Undefined column: 7 ERROR: column t0.username does not exist

При тестировании регистрации пользователей от пакета Symfony - FOSUserBundle, возникает ошибка:

Undefined column: 7 ERROR: column t0.username does not exist

symfony Entity "..." does not exist in the "..." bundle. You may have mistyped the bundle name or.. - Ошибка при генерации CRUD

Entity "..." does not exist in the "AppBundle" bundle. You may hav
e mistyped the bundle name or maybe the entity doesn't exist yet (create it
first with the "doctrine:generate:entity" command).

-- в ответ на попытку сгенерировать CRUD.
И это при то что сущность была снегерирована автоматически.

symfony Несколько маршрутов для одного действия контроллера (routes -- два и более для action). Например со слэшем и без

Задача -- чтобы какой-то маршрут открывался и со слэшем и без него (без использования переадресации).

В том примере показано как открыть со слжшем и без него --то есть моё действие запускается так (в ответ на переход по URL):

имясайта.ru/image

и так:

имясайта.ru/image/

Решение через аннотации

Если вы используете для маршрутизации аннотации, то можно использовать две аннотации @Route (только важно чтобы имена маршрутов были разными -- иначе значение просто переопределится):

symfony Обновляем фрэймворк до очередной минорной версии (например, с 3.2 на 3.3)

Делаем так:

  1. В композер composer.json устанавливаем новую версию (пакета symfony/symfony):
    	"symfony/symfony": "3.3.*",
             "twig/twig": "^1.0||^2.0"
    },
  2. И просим композер обновить ядро:
    composer update symfony/symfony

Если возникнут проблемы с зависимостями, то можно попробовать обновить с зависимыми пакетами:

symfony Attempted to call an undefined method named ... of class ... -- Ошибка

Attempted to call an undefined method named "render" of class "AppBundle\Controller\LuckyController"

или

Attempted to call method “getDoctrine” on class "../...Controller"

или

Attempted to call method “getParameter” on class "../...Controller"

Решение

Не забывайте унаследовать свой контроллер от стандартного:

symfony 3 Session Storage was not able to create directory "/var/www/ .../app/../var/sessions/dev

symfony 3 Session Storage was not able to create directory "/var/www/ .../app/../var/sessions/dev

Нужно так или иначе дать права на папку var/session

symfony Cache directory ".../var/cache/dev" is not writable

Ошибка может возникнуть в процессе запуска симфони.

Можете выяснить имя пользователя под которым работает ваш сервер, далее нам нужно будет дать права.

Если речь идёт об ubuntu, то дать права можно дать права на запись сразу всем пользователям (что не безопасно), но для первичной установки пойдёт (даем рекурсивно из папки корня проекта):

sudo chmod go+w var/ -R

symfony 3 doctrine Сгенерировать базу данных по моделям -- команды

Развернуть базу по моделям можно так:

bin/console doctrine:schema:update --force
bin/console doctrine:schema:validate

symfony route Маршруты получить список роутов (консоль)

Чтобы получить список зарегистрированных маршрутов в консоли сифони достаточно выполнить команду:

php bin/console debug:router
Subscribe to RSS - Symfony 3