• Как исправить ошибку "Error: Class Blog\Entity\Post has no association named img_id"?

    @Hfnas Автор вопроса
    Максим Федоров, благодарю, я перелопатила инет, решила доктрину перечитать все.
    Да, Ваши команды действительно помогли.
    + и пришлось сделать двухнаправленную OneToMany с использованием inversed by и mapped by. Так не поняла, зачем пишут в документации доктрины про одноправленную OneToMany, раз она не имеет смысла?
    в конечном итоге я попыталась с помощью джойна упростить обращение к бд, чтобы сразу получить 2 сущности, а не через одну сущность получить другую сущность.
    Но разницы, к сожалению, не увидела, так как через одну сущность можно получить другую сущность в обоих случаях. В чем разница тогда?
    вот отладка дебага с join:
    5d498161b14f1495980710.png
    без join
    5d498198ee946046047553.png

    все равно придется обращаться в шаблоне view.phtml
    $post->getImg()->getImgPath();, где getImg() - метод класса Post, а getImgPath()- метод класса Image.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Еще, важный момент, как сказал rustler2000 (спасибо ему тоже огромное), docker-compose.yml переписывает докерфайл.
    у меня было указано в docker-compose.yml:
    volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD} <- вот эта строчка.

    поэтому
    xdebug.remote_enable=on
    xdebug.remote_autostart=off

    просто стирались файлом , отмеченным в в docker-compose.yml.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Ошибка состояла в том что я писала вместо 127.0.0.1 test ->127.0.0.1 xxx_hhh ввезде, где нужно писать ( в 000-default.conf, /etc/hosts), те доменное имя не должно содержать знак подчеркивания.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    rustler2000, да делала много раз, а где взять свежий образ?
    from php:7.3.4-apache - нормальный образ. ( взят из докерфайла)/
    Подскажите, пожалуйста.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Благодарю за внимание.
    RUN apt-get update \
     && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
     && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini\
     && echo  "127.0.0.1 test" >> /etc/hosts \

    все равно не выполняется. Я переместила на первые строчки, после апдейт.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Если я вас правильно понял, вы желаете локально поднять контейнер, в нём некий web сервис и на этом-же компьютере осуществлять "вход"?
    Тогда строчку "127.0.0.1 test" вам необходимо добавлять в ваш локальный host а не тот что в контейнере ибо резолвинг имени в адрес, происходит у вас локально.

    не помогло.
    вылезает ошибка "Bad Request
    Your browser sent a request that this server could not understand.
    Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request."

    docker run ... --add-host="test"
    я понимаю, если я нажимаю
    docker run -it --add-host test:127.0.0.1 ubuntu cat /etc/hosts

    у меня ос =ubuntu, а контейнера ubuntu нет. Подскажете, что означает ubuntu в этой команде?
    в командной оболочке, то никакой подзамены 127.0.0.1=test не наблюдаю.
    Честно, не понимаю, зачем мы должны править файл /etc/hosts на локальной машине, а не в контейнере. Когда мы работаем с сервером на продакшене, правится файл /etc/hosts на продакшене, у себя на компе ничего не прописываем....
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Антон, благодарю за внимание. Мне нужно для саморазвития, хочется понять все про host, для меня это темный лес, в теории понятно, что делает файл /etc/hosts, а на практике не совсем. Буду благодарна, если поможете.
    1) руками в hosts-файл на вашей хост-машине добавить строчку 127.0.0.1 test. Так вы решите вопрос с именем хоста (test вместо IP 127.0.0.1)

    Прописала не в контейнере, а на компе, где запущен докер.
    вылезает ошибка "Bad Request
    Your browser sent a request that this server could not understand.
    Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request."
    2) при старте контейнера с веб-сервером биндить порт веб-сервера из контейнера с 80-м портом вашей хост-машины (с помощью параметра --publish): что-то типа docker run --publish 80:8080 ... - здесь как бы написано: "связать внутренний порт контейнера 8080 с внешним портом хост-машины 80" (в вашем случае вроде как оба порта будут 80, и внутренний, и внешний)

    у меня написано в docker-compose.yml в ports
    version: '3'
    services:
      web:
        build: ./web
        environment:
          - XDEBUG_CONFIG="remote_host=172.17.0.1 remote_enable=1"
          - PHP_IDE_CONFIG="serverName=Docker"
          - APACHE_RUN_USER=www-data
        extra_hosts:
          - "zend_web:127.0.0.1"
        volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD}
        ports:
          - 8080:80
        working_dir: ${APP_PATH_CONTAINER}


    . Если вы делаете это уже для продакшна - то всё, что вы описали в вопросе - не то, не так и не в ту сторону

    Подскажите, пож-ста, в какую сторону мне копать, если я не понимаю на локалке, то как я пойму продакшен?
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    rustler2000, благодарю за внимание!!!
    обновила вопрос.
    entrypoint у меня записано в docker-compose.yml
    version: '3'
    services:
      web:
        build: ./web
        environment:
          - XDEBUG_CONFIG="remote_host=ip remote_enable=1"
          - PHP_IDE_CONFIG="serverName=Docker"
          - APACHE_RUN_USER=www-data
        volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD}
        ports:
          - 8080:80
        working_dir: ${APP_PATH_CONTAINER}

    Уточните, пожалуйста, как entrypoint может влиять на запись в конец файла /etc/hosts?

    Прописала в docker-compose.yml в блоке web, не помогло:
    extra_hosts:
      - "test:127.0.0.1"

    хоть и добавилось в /etc/hosts на контейнере.
    в браузере ошибка "Не удается получить доступ к сайту".
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Не очень понятно зачем это нужно?

    Буду очень признательна, если вы мне подскажете. Мне необходимо сделать http://127.0.0.1:8080=http://test , я устала порты набивать.
    Сформулирую по-другому вопрос, как заставить докерфайл записать в конец файла нужную строчку? У меня он не пишет.
    RUN
     echo "127.0.0.1 test" >> /etc/hosts \
     && a2enmod rewrite


    Лучше пропишите на машинах откуда заходите на вебсервер в hosts желаемое имя.

    не в образе, а в основной системе, из которой я браузеры открываю? Странно, в инструкциях написано, надо указывать в докер-контейнере. Аналогично, если ты разместил сайт на хостинге, его алиас (ip написано буквами), пишется в файле /etc/hosts на сервере. Или я ошиблась?

    Очень прошу подсказать мне, я не могу придумать недели 2-3, с чем это связано?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    BoShurik, благодарю за ответ!!!
    На проде тоже так же будете выполнять? Тот же пример с object все порушит*

    На проде никогда с фреймфорками не работала, поэтому не знаю. С Вами хочу посоветоваться...

    Итак, алгоритм действии, на мой взгляд. Подправьте меня, пожалуйста, если не права, так как для меня это важно:
    1. первый раз создаю сущность (таблиц нет в бд)- выполняю код:
    ./vendor/bin/doctrine-module   orm:schema-tool:create

    2. далее, если забыла что-то добавить в предыдущую сущность/или добавить новую сущность:
    ./vendor/bin/doctrine-module   orm:schema-tool:update

    3. Таблицы в бд появились, а дальше что надо сделать-миграцию, зачем понятия не имею- в бд таблицы появились:
    ./vendor/bin/doctrine-module migrations:generate-заполняем класс миграции вручную...
    ./vendor/bin/doctrine-module migrations:migrate-мигрируем в ту же бд- обычно ошибка, что в бд таблицы существуют.
    4. Гитом с тестового сервера запушу на продакшен.
    5. Выполняю на продакшене:
    ./vendor/bin/doctrine-module   orm:schema-tool:create

    ./vendor/bin/doctrine-module   orm:schema-tool:update

    ./vendor/bin/doctrine-module migrations:migrate

    Итог, я пишу и сущность и миграции, те получается, что я одно и то же пишу 2 раза, а если, допустим я пишу правильно сущность, а миграцию неверно-ошибусь, или наоборот.
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    Stalker_RED, BoShurik, подскажите, пожалуйста, смысл проведения миграции после создания сущностей.
    Мне лично кажется, что из миграции проще создать сущность, чем наоборот.
    Попробовала двумя способами:
    ./vendor/bin/doctrine-module orm:schema-tool:update
    1.я пишу сущности-
    ./vendor/bin/doctrine-module   orm:schema-tool:create

    -создаются таблицы
    далее, если пишу миграции после генерации сущностей- и применяю
    ./vendor/bin/doctrine-module migrations:migrate- то пишут , что таблицы уже существуют...

    2.пробую сначала миграции-создаются таблицы- можно создать сущности из таблиц.

    А чтоб после сущностей применить миграцию, у меня не получилось.
    Я не понимаю смысл миграции после создания сущностей, так как, если я добавлю сущность, могу применить
    ./vendor/bin/doctrine-module   orm:schema-tool:update

    , если сущность поменяю.

    Сущность нужна для того, чтобы обращаться к таблице как объекту... Это все, что я поняла пока.

    Подскажите, пожалуйста, каков смысл миграции после создания сущностей?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    kafkiansky, распишите, пожалуйста, поподробнее.
    проштудировала еще раз:

    1.я пишу сущности-
    ./vendor/bin/doctrine-module   orm:schema-tool:create
    -создаются таблицы
    далее, если пишу миграции после генерации сущностей- и применяю
    ./vendor/bin/doctrine-module migrations:migrate- то пишут , что таблицы уже существуют...

    2.пробую сначала миграции-создаются таблицы- можно создать сущности из таблиц.

    А чтоб после сущностей применить миграцию, у меня не получилось.
    Я не понимаю смысл миграции после создания сущностей, так как, если я добавлю сущность, могу применить
    ./vendor/bin/doctrine-module   orm:schema-tool:update
    , если сущность поменяю.
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    Ninazu,
    И популяризация в обьекты чрезмерно избыточна. Про добавление столбца в живую базу, с миллиардной таблицей я вообще молчу. Поэтому избавляюсь от этих технологий.

    то есть вы используете только прямые запросы в бд, без всяких там миграции и доктрин в больших проектах?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    BoShurik, Ninazu, вы походу противоречите друг другу...или я Вас не понимаю...

    Правда, в книжке https://olegkrivtsov.github.io/
    1. создаются таблицы
    2. создаются сущности вручную, по-видимому
    3. следующая глава посвящена миграции

    Про генерацию миграции вроде поняла, как делать. Про сущность не совсем. Сейчас попробую удалить сущности, и сгенерировать на основе бд - проверю, создадутся ли самостоятельно сущности?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    BoShurik,
    Б)
    - добавляем поле posts (img)

    куда в сущность добавляем, типа
    /**
         * @ORM\Column(name="img")
         */
        protected $img;

    ?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    Ninazu, спасибо!
    подскажите, пож-ста:
    3. Создать две миграции, а потом создать ORM на базе текущей структуры.

    1.то есть, я сделала 2 миграции - в бд таблички были созданы- и на основе таблиц в бд, генерируются сущности? так?
    2.Далее, я захотела добавить еще столбец author в табличку posts , я создаю миграцию- генерирую- бд обновилась- обновляю сущность на основе бд опять генерауией orm?
    3.Еще один вопрос, сущности пишутся вручную? я почему-то думала, что класс сущностей надо руками заполнять. Это так?

    Спасибо за ответы заранее!
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    Ninazu, поподробнее можно, или, пож-ста, ответьте в комментариях в ответах ниже, если нетрудно. Пож-ста.
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    Еще момент, если я меняю последнюю миграцию, уже сгенерированную, то почему-то не работает текущая миграция? Поэтому я создаю новые миграции с измененными данными. Возможно, в этом и есть отличие от доктрины , сущность можно менять бесконечно число раз, а миграции только добавлять...

    Все равно темный лес в голове, зачем их нужно применять одновременно, какая польза?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    kafkiansky, как пример, его сначала изучаю, я новичок.