Symfony

Symfony -- Валидация данных. Способы

Синтаксис для любых способов валидации и всевозможные правила (размер данных, их наличие, соответствие регулярному выражению, формат данных и др.) можно найти в официальной документации Symfony, здесь.

Основная статья по валидации здесь.

symfony -- FOSUserBundle Как переопределить стандартную форму авторизации?

Код моего класса RegistrationType, расширяющего стандартный:

<?php

namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

/**
 * Форма регистрации пользователя
 */
class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('adress');
        $builder->add('mobileNumber');
    }

    public function getParent()
    {
        return 'FOS\UserBundle\Form\Type\RegistrationFormType';
    }

symfony -- не работает redirect() Как сделать переадресацию

Не работает метод redirect($url) в Symfony

Маршрутизация контроллера построена таким образом:

/**
 * Article контроллер
 * 
 * @Route("article")
 */
class ArticleController extends Controller
{
    /**
     * Выводит на экран список всех статей
     * 
     * @Route("/", name="article_index")
     * 
     * @return Response
     */
    public function indexAction() {}

Т.е. indexAction() вызввается по адресу:

http://localhost/article/

symfony Doctrine -- создать foreign key -- связь One To One между сущностями (внешние ключи)

Описать связь таблиц через внешний ключ можно также с помощью аннотаций к свойствам.

Простейший пример - однонаправленная связь

Однонаправленная связь Один-к-Одному (когда единственному значению одной сущности соответствует одно значение другой сущности):

symfony Doctrine -- создать primary key (первичный ключ)

Можно с помощью аннотаций свойств.

Чтобы при создании таблицы был сгенерирован автозаполняемый primary key (auto_increment в MySQL, serial в PostgreSQL), добавляем в аннотацию строку GeneratedValue:

class Articles {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    private $id;

Symfony Failed to remove file "..../var/cache/de~/pools/....."

[Symfony\Component\Filesystem\Exception\IOException]
Failed to remove file "..../var/cache/de~/pools/....."

-- ошибка появляется во время обновления, но причина её в том, что скрипты обновления запускают команду (вы тоже можете запус):

php bin/console cache:clear

(вы тоже можете запустить её руками для отладки -- это очистка кэша).

symfony Действие (action) в контроллере по умолчанию

Как сделать так, чтобы один из экшенов Контроллера загружался по умолчанию?

Т.е. вместо пути

http://localhost:8000/hello/index

его можно было бы вызвать так:

http://localhost:8000/hello

Для этого

отредактируйте конфигурационный файл маршрутизации, который находится где-то здесь: app/config/routing.yml

Если метод контроллера, который Вы хотите сделать стандартным, выглядит так:

[Database] FAIL - The database schema is not in sync with the current mapping file. Ошибка

[Database] FAIL - The database schema is not in sync with the current mapping file.

Может ошибкой в ответ на проверку схемы.

Решение

Обновите схему или запустите миграции.

The stream or file ".../var/logs/dev.log" could not be opened Ошибка Решение

[UnexpectedValueException]
The stream or file ".../var/logs/dev.log" could not be opened:
failed to open stream: Permission denied

Дело в том, что консольная команда (например эта) работает из под вашего юзер, а по умолчанию сифони даёт права на запись только владельцу -- в случае такой конфигурации удобно дать права группе и всей группе (перейтие в папку var):

sudo chmod g+w -R logs/

Pages

Subscribe to RSS - Symfony