Ответы пользователя по тегу Silex
  • Использование Silex и SecurityServiceProvider

    @Alcospb Автор вопроса
    Попробовал скопировать из документации пример с авторизацией для /admin: silex.sensiolabs.org/doc/providers/security.html

    а) Зарегистрировал
    б) Добавил новый контроллер /login
    в) В twig контроллера добавил форму

    Получил ошибку:
    InvalidArgumentException: Identifier "security.last_error" is not defined.


    Как так?!
    Ответ написан
    Комментировать
  • Silex и SecurityServiceProvider: Задание firewalls

    @Alcospb Автор вопроса
    C боем разобрался, что правильная форма следующая:

    $app->register(new Silex\Provider\SecurityServiceProvider());
    $app['security.firewalls'] = array(
        'admin' => array(
            'pattern' => '^/admin',
            'http' => true,
            'users' => array(
                'admin' => array(admin),
            ),
        ),
    );


    Хотя, вопросов от этого меньше не стало :)
    Ответ написан
    Комментировать
  • Silex и SecurityServiceProvider: Задание firewalls

    @Alcospb Автор вопроса
    Взял пример из документанции:
    $app->register(new Silex\Provider\SecurityServiceProvider(), array(
        'security.firewalls' => array(
            'default' => array(
                'wsse' => true,
            ),
        ),
    ));


    Получил фатальную ошибку.

    Очевидно, я чего-то не понимаю.
    Ответ написан
    Комментировать
  • Silex: где задаются правила isValid() для формы?

    @Alcospb Автор вопроса

    В рендеринг формы нужно было добавить
    {{ form_rest(form) }}

    Ответ написан
    Комментировать
  • Silex: где задаются правила isValid() для формы?

    @Alcospb Автор вопроса

    Вот урезанный код. Может что-то увидите?

    $app->match('/add/{flat_id}', function (Request $request, $flat_id) use ($app) {
    
        $form = $app['form.factory']->createBuilder('form', $data)
            ->add('attachment', 'file')
            ->add('type', 'choice', array(
                'choices' => array(
                    '1' => 'Студия',
                    '2' => 'Однушка',
                    '3' => 'Евродвушка',
                    '4' => 'Двушка',
                    '5' => 'Трешка',
                    '6' => 'Четвирешка :)'),
                'expanded' => false
                ))
            ->add('square_total')
            ...
            ->getForm();
    
        $form->handleRequest($request);
    
        if ($form->isValid()) {
            $data = $form->getData();
    
                    $app['db']->insert('vn_db_flats', array(
                	'attachment' => rand(1,999) . $data['attachment']->getClientOriginalName(),
                    'type' => $data['type'],
                    'square_total' => $data['square_total'],
                     ...
                ));
    
                $data['attachment']->move(__DIR__ . '/attach/', $data['attachment']->getClientOriginalName());
    
                return $app->redirect($app['url_generator']->generate('index'));
            }
        }
    
        return $app['twig']->render('add.twig', array('form' => $form->createView()));
    
    })
    ->bind('add')
    ->value('flat_id', '0');

    Ответ написан
    Комментировать