Size: a a a

2020 September 23

👤U

👤 User in symfony
Подумываю unmapped field соорудить в продукте.
источник

VM

Volodymyr Melko in symfony
👤 User
Избегаю двунаправленных связей. Но вот есть продукт и его имаги. Как это правильно в кучу собрать и отдать твигу? Шоб product.images работало.
не передавай єнтити в твиг
источник

D

Dmitry in symfony
а где тут двунарпавленная связь вообще ?
источник

D

Dmitry in symfony
есть productDTO и у него есть images
источник

👤U

👤 User in symfony
Ага. Dto. Видимо пора изучить что это такое.
источник

ЕС

Евгений Скоробогатый... in symfony
Возник вопрос при обработке ошибок в доктрине:
Есть класс расширяющий Connection:
class ExtendedCustomConnection extends Connection
{
/**  ***/
   public function changeDatabase(){

       if ($this->isConnected())
           $this->close();

       $config_f = Yaml::parseFile(DIR.'/../../../config.yaml');
       $params['dbname'] = $config_f['connections']['db'];
       $params['host'] = $config_f['connections']['address'];
       $params['port'] = $config_f['connections']['port'];
       $params['user'] = $config_f['connections']['username'];
       $params['password'] = $config_f['connections']['password'];

       try {
           parent::__construct(
               $params,
               $this->_driver,
               $this->_config,
               $this->_eventManager
           );
       } catch (DBALException $e) {
           
       }
   }
}
Далее в контролере вызываеться переподключение к базе:

       try {
           $connection->changeDatabase();
       } catch (DBALException $e){
           $err = $e->getMessage();
       }
       $ping=$connection->ping();
```
Предполагается что будет возвращаться статус подключения и текст ошибки , но приходит 500 страничка ошибкой.
Почему try... catch... не срабатывает?
источник

VK

Vladyslav Kopaihorod... in symfony
источник

VK

Vladyslav Kopaihorod... in symfony
Грустно
источник

D

Dmitry in symfony
Евгений Скоробогатый
Возник вопрос при обработке ошибок в доктрине:
Есть класс расширяющий Connection:
class ExtendedCustomConnection extends Connection
{
/**  ***/
   public function changeDatabase(){

       if ($this->isConnected())
           $this->close();

       $config_f = Yaml::parseFile(DIR.'/../../../config.yaml');
       $params['dbname'] = $config_f['connections']['db'];
       $params['host'] = $config_f['connections']['address'];
       $params['port'] = $config_f['connections']['port'];
       $params['user'] = $config_f['connections']['username'];
       $params['password'] = $config_f['connections']['password'];

       try {
           parent::__construct(
               $params,
               $this->_driver,
               $this->_config,
               $this->_eventManager
           );
       } catch (DBALException $e) {
           
       }
   }
}
Далее в контролере вызываеться переподключение к базе:

       try {
           $connection->changeDatabase();
       } catch (DBALException $e){
           $err = $e->getMessage();
       }
       $ping=$connection->ping();
```
Предполагается что будет возвращаться статус подключения и текст ошибки , но приходит 500 страничка ошибкой.
Почему try... catch... не срабатывает?
сделайте catch Throwable и проверьте тип исключения
источник

IG

Ivan Grigoriev in symfony
Евгений Скоробогатый
Возник вопрос при обработке ошибок в доктрине:
Есть класс расширяющий Connection:
class ExtendedCustomConnection extends Connection
{
/**  ***/
   public function changeDatabase(){

       if ($this->isConnected())
           $this->close();

       $config_f = Yaml::parseFile(DIR.'/../../../config.yaml');
       $params['dbname'] = $config_f['connections']['db'];
       $params['host'] = $config_f['connections']['address'];
       $params['port'] = $config_f['connections']['port'];
       $params['user'] = $config_f['connections']['username'];
       $params['password'] = $config_f['connections']['password'];

       try {
           parent::__construct(
               $params,
               $this->_driver,
               $this->_config,
               $this->_eventManager
           );
       } catch (DBALException $e) {
           
       }
   }
}
Далее в контролере вызываеться переподключение к базе:

       try {
           $connection->changeDatabase();
       } catch (DBALException $e){
           $err = $e->getMessage();
       }
       $ping=$connection->ping();
```
Предполагается что будет возвращаться статус подключения и текст ошибки , но приходит 500 страничка ошибкой.
Почему try... catch... не срабатывает?
Xdebug не помогает?
источник

VK

Vladyslav Kopaihorod... in symfony
Ivan Grigoriev
Xdebug не помогает?
Его еще надо установить
источник

VK

Vladyslav Kopaihorod... in symfony
А это сложно
источник

ЕС

Евгений Скоробогатый... in symfony
Ivan Grigoriev
Xdebug не помогает?
А при чем здесь xdebug и чем он поможет?
источник

👤U

👤 User in symfony
Dmitry
а где тут двунарпавленная связь вообще ?
Если следовать подсказкам make:entity, то когда я создавал имаги, он по умолчанию предлага создать и со стороны продукта связь. Но доктрина же не рекомендует двунаправленность, как я понял. Видимо, надо использовать rsm, native query и правильно собрать себе объект для шаблона?
источник

ЕС

Евгений Скоробогатый... in symfony
Я целенаправленно пердаю перпавильные параметры подключения
источник

ЕС

Евгений Скоробогатый... in symfony
И хочу что бы был не 500 а ответ с содержимым ошибки
источник

D

Dmitry in symfony
👤 User
Если следовать подсказкам make:entity, то когда я создавал имаги, он по умолчанию предлага создать и со стороны продукта связь. Но доктрина же не рекомендует двунаправленность, как я понял. Видимо, надо использовать rsm, native query и правильно собрать себе объект для шаблона?
в твиг не нужно передавать сущность, соберите в слое выше какой-то обьект, обычно это ДТО, который будет включать в себя все нужные данные продукты и его картинки, и передайте в твиг
источник

D

Dmitry in symfony
так вы отделите логику представления и бизнес логику, чтобы ни случилось с сущностью, ваш дто будет стабилен и представление не пострадает от изменений в сущности
источник

IG

Ivan Grigoriev in symfony
Евгений Скоробогатый
А при чем здесь xdebug и чем он поможет?
Проследить путь выполнения запроса.
источник

👤U

👤 User in symfony
Есть хороший пример? А то ввиду малого знания терминологии не соображу как правильно гугл спросить. Ну или по каким паттернам гуглить?
источник