• Валидация формы со своими flash сообщениями Symfony2?

    AndreyShakhtarin
    @AndreyShakhtarin Автор вопроса
    Один из Землян
    Походу нет решения к данной теме
    Ответ написан
  • Почему не работает валидация в symfony?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян

    properties:
        name:
            - NotBlank:
                message: "Введите название рубрики"
            - Length:
                min: 4
                minMessage: "Длина названия рубрики должна быть минимум 4 символа"


    name: не совпадает с полем в форме App\AdmindBundle\Entity\RubricType;
    Одна из возможных причин.
    Ответ написан
    Комментировать
  • Как защититься от SQL инъекций?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    Ответ написан
    Комментировать
  • Как сделать переключалку отображения контента типа grid и типа list?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    devacademy.ru/posts/symfony-2-joboard-rss
    можно отсюда взять логику, в частности покалдовать

    public function indexAction()
    {
       $format = $this->getRequest()->getRequestFormat();
    
       return $this->render('AcmeBlogBundle:Blog:index.'.$format.'.twig');
    }


    И путь к контенту

    <a href="{{ path('app_job', {'_format': 'atom'}) }}">RSS</a>


    возможно это то что искал
    вариант вышее лучшее простое переключение стилей средствами js
    без лишних запросов к серверу
    Ответ написан
    Комментировать
  • Symfony как сделать регистрозависимвый поиск с помощью entity manager?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян

    $em = $this->getDoctrine()->getManager();
    $links = $em->getRepository('AppBundle:Links')->findOneByCode($request->get('code'));


    идем в класс Репозиторий(AppBundle/Repository/Links или создаем ):
    namespace AppBundle/Repository/Links;
    
    use use Doctrine\ORM\EntityRepository;
    
    class Links extends EntityRepository
    {
          public function findOneByCode ( $code )
          //здесь реализуем выборку так как требуется
          // для приведения в верхний регистор используем php встроеные 
          //функции к примеру strtoupper($code)
         // проверяем значение, есть такое значение в бд
         // если есть заносим в массив
         // и так ищем в разных регистрах значение
         //может возникнуть несколько значений в разных регистрах
         // а если так то ето уже просто findByCode
         //и возвращаем значение виде  массива в котором есть свои значения
         //но что б избежать данной проблемы проще хранить в бд с каким либо определенным
         // регистром данные      
    }

    Можно так реализовать , возможно есть еще лучшее вариант ;-)
    Ответ написан
  • Как правильно отправлять сообшения через swiftmailer Symfony2-3?

    AndreyShakhtarin
    @AndreyShakhtarin Автор вопроса
    Один из Землян
    После недолгих исканий нашел решение:
    В принципе все было сделано правильно за исключением одного ньюанса.
    Опишу подробное описание того как я все сделал возможно кому-нибудь поможет хотя в доках все есть: ну иль почти все... "хе-хе-хе"....
    первое что я сделал добавил параметры для swiftmailer:

    //app/config/config.yml
    ...
    # Swiftmailer Configuration
    swiftmailer:
        transport: smtp
        username: "%mailer_user%"
        password: "%mailer_password%"
        host: "%mailer_host%"
        port: "%mailer_port%"
        encryption: "%mailer_encryption%"
        auth_mode:  "%mailer_auth_mode%"


    Данные в параметры в кавычках к примеру "%mailer_auth_mode%" как ссылающий параметр к файлу с параметрами который я импортирую там же в конфигах выше:

    //app/config/config.yml
    imports:
        - { resource: parameters.yml }
        - { resource: security.yml }
        - { resource: services.yml }
        - { resource: "@AppJoboardBundle/Resources/config/parameter_mailer.yml" }


    Далее создал файл в своем бандле как указал вышее AppJoboardBundle/Resources/config/parameter_mailer.yml
    ( Возможно это не из лучших практик, но мне надоело после апдейта проекта постоянно добавлять параметры, поэтому я их добавлю в свой бандл и импортирую в кофигах. )
    и добавим параметры:
    parameters:
        mailer_user:  example@gmail.com
        mailer_password:  password
        mailer_host: smtp.gmail.com
        mailer_port: 465
        mailer_encryption: ssl
        mailer_auth_mode:  login

    Затем СОЗДАЛ НОВЫЙ АККАУНТ в gmail.com (Если честно это и была моя проблема, незнаю почему, но с аккаунтов, которые были созданы мной ранее не отправлялись письма, что б я там не делал... Может мало чего сделал :-) )
    После того как создал аккаунт подключил pop-client:
    ( описанное мной ранее, еще раз повторюсь):

    Откройте Gmail на компьютере.
    В правом верхнем углу нажмите на значок Настройки.
    Нажмите Настройки.
    Откройте вкладку Пересылка и POP/IMAP.
    В разделе "Доступ по протоколу POP" выберите Включить POP для всех писем или Включить POP для писем, полученных с этого момента.
    Нажмите Сохранить изменения внизу страницы.

    И в завершении остается последний шаг описать отправку в контролере:
    (ну иль там где считаете справедливым )))
    $message = \Swift_Message::newInstance()
                ->setSubject('Hello Email')
                ->setFrom('noreply@joboard.local')
                ->setTo('dushamoil1988@gmail.com')
                ->setBody(
                    $this->renderView(
                        'AppJoboardBundle:Affiliate:email.txt.twig',
                        array('name' => 'mailer')
                    )
                )
            ;
            $this->get('mailer')->send($message);

    И это все, что нужно сделать для того, что б отправлять письма через swiftmailer, перенаправляя в новую созданную почту и отправлять письма на указанные адреса пользователями в вашем проекте.
    Ответ написан
  • В Symfony после создания бандла выдает ошибку 500. В чем проблема?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    Не забудьте удалить бандл, устанавливаемый по умолчанию (он нам не понадобится) для этого:

    Удалите папку AppBundle из каталога src
    Удалите строчку new AppBundle\AppBundle() из зарегистрированных Бандлов, в файле app/AppKernel.php
    удалите папку default по адресу app/Resources/views
    удалите эти строки:

    app:
    resource: "@AppBundle/Controller/"
    type: annotation

    из файла app/config/routing.yml

    почистить кэш зарегистрировать бандл
    php app/console clear:cache --env=dev
    php app/console clear:cache --env=prod
    потом разчимодить дерикторию my_project/var/
    Ответ написан
    4 комментария
  • С помощью чего лучше работать с MySQL?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    phpMyAdmin быстро легко и понятно, графический интерфейс
    Ответ написан
    Комментировать
  • Ubuntu 15.10 не может установить php 7?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    можно через Менеджер пакетов Synaptic если в убунту он есть, в линуксе он есть
    Ответ написан
    Комментировать
  • Немного вопросов по DoctrineORM и Symfony?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    Как сделать ORM-аннотацию, чтобы поле типа "datetime" заполнялось текущими датой-временем?

    class Имя_Класса
    {
    
         $поле_времяни;
         /**
         * Set поле_времяни
         *
         * @param \DateTime
         *
         * @return Имя_Класса
         */
        public function поле_времяни()
        {
            $this->поле_времяни = new \DateTime('today');
        }
    }

    еще можно вместо 'today' записать 'now', что одно и тоже.

    обычно так делаю...
    Ответ написан
  • Как подклчиться к существующей коллекции mongo в Symfony?

    AndreyShakhtarin
    @AndreyShakhtarin
    Один из Землян
    А зачем нативно? и зачем Класс дополнительный?
    Ответ написан