@symfony_php

Страница 158 из 1418
Timur
30.03.2017
09:14:02
в конструкторе попробуй

Sergey
30.03.2017
09:16:58
при редактировании теперь нормально выводит

Timur
30.03.2017
09:17:09
а при создании что?

Sergey
30.03.2017
09:17:30
при создании другой класс сейчас

Google
Timur
30.03.2017
09:17:51
при создании другой класс сейчас
ты другой класс только из-за даты создал?

Sergey
30.03.2017
09:17:57
https://pastebin.mozilla.org/8983623

нет, там изначально был просто вывод, без редактирования. я дописал ещё форму, чтобы править можно было

в ссылке выше класс чисто для новой формы

Timur
30.03.2017
09:19:15
нет, там изначально был просто вывод, без редактирования. я дописал ещё форму, чтобы править можно было
ты можешь сделать форму динамической. Можешь создать один класс и с помощью event listener'ов менять форму "на лету"

Но это может показаться сложноватым, если ты новичок в Symfony

Sergey
30.03.2017
09:19:49
пока это надо починить) потом переделаю

вот куда дату в этом случае впихнуть, чтобы pdate был DateTime('now')

Sergey
30.03.2017
09:21:54
да

Timur
30.03.2017
09:22:32
Значит там в любом случае должна быть текущая дата, так что можешь использовать свой вариант ->add('pdate', null, ["data" => new \DateTime('now')])

или ->add('pdate', 'date', ["data" => new \DateTime('now')])

Sergey
30.03.2017
09:23:41
а в контролере при создании формы не получится?

Google
Timur
30.03.2017
09:24:05
чем тебе не нравится, то что я только что написал?

Sergey
30.03.2017
09:24:19
тем, что это и было сразу так)

Timur
30.03.2017
09:24:28
Пусть и останется, потому что верно

Sergey
30.03.2017
09:24:43
в таком случае при редактировании будет эта же дата "now"

Timur
30.03.2017
09:24:59
в таком случае при редактировании будет эта же дата "now"
Так ты же сказал, что у тебя отдельная форма для редактирования

Sergey
30.03.2017
09:25:14
форма отдельная, а данные одни

Timur
30.03.2017
09:25:45
В форме редактирования будет браться дата из БД

Sergey
30.03.2017
09:25:50
да

и при создании данные будут литься в БД

в эти же таблицы

Просто сейчас, когда из класса с бд я убрал явно datetime - то при редактировании данные из базы

а когда стояло ->add('pdate', null, ["data" => new \DateTime('now')]) - при редактировании данные были now

Sergey
30.03.2017
09:29:08
ну я так понимаю что класс с бд должен записывать данные что передаются, а показывать что есть. А форматировать данные надо в классе с формой

вот надо как-то оформить дату в этом классе



вот сейчас

новая форма



и вот форма для редактирования - то что нужно

Google
Andrew
30.03.2017
09:30:32
http://symfony.com/doc/current/reference/forms/types/date.html#format

Timur
30.03.2017
09:32:03
Если ты хочешь, чтобы тебе помогли, ты должен выложить все что у тебя есть: класс сущности Fin, оба класса формы и метод контроллера. Потому что ты объясняешь непонятно из-за непонимания того, как это работает

Timur
30.03.2017
09:36:00
а я и так всё показал)
Ты сказал у тебя два класса формы

Sergey
30.03.2017
09:36:31
https://pastebin.mozilla.org/8983627

ну вот класс для новой формы

Timur
30.03.2017
09:37:00
ну вот класс для новой формы
Это метод контроллера.

FinType - это класс формы

Sergey
30.03.2017
09:37:36
https://pastebin.mozilla.org/8983628

понял, вот

Timur
30.03.2017
09:37:58
Это один класс формы. Где второй?

Sergey
30.03.2017
09:38:06
он один, другого нет

Timur
30.03.2017
09:38:16
Вот, а ты говоришь два. Мозги тут нам паришь :)

Sergey
30.03.2017
09:38:23
Значит два контролера

один класс для формы, два контролера

Timur
30.03.2017
09:39:01
без "для"

сущность покажи теперь

class Fin

Sergey
30.03.2017
09:40:51
https://pastebin.mozilla.org/8983629

Google
Timur
30.03.2017
09:43:17
ты же не создал конструктор, как тебе чувак выше говорил

вставь вот этот кусок в твой class Fin public function __construct() { $this->pdate = new \DateTime('now'); }

так, твой контроллер showAction используется для редактирования, как я понял, да?

Sergey
30.03.2017
09:46:46
там они оба так называются. может поменять пока не поздно? типо createAction

Тоесть __construct будет выполняться только при insert операции в БД?

при select не будет?

Timur
30.03.2017
09:48:22
Он выполняется всегда. Просто потом это значение заменится значением из БД, если оно существует

Admin
ERROR: S client not available

Dmitriy
30.03.2017
09:48:43
охохо )

Sergey
30.03.2017
09:48:48
понял! Благодарю) Это только начало.

Timur
30.03.2017
09:49:21
охохо )
Санта, ты поздновато

)

Andrew
30.03.2017
09:50:44
http://www.doctrine-project.org/2010/03/21/doctrine-2-give-me-my-constructor-back.html

Yuriy
30.03.2017
10:14:33
Всем привет, в файле конфига (security.yml) записи, ниже чем то отличаются или они одинаковы? pattern: .* pattern: ~

Sergey
30.03.2017
10:16:02
~ это null, дефолтное значение .* - все подряд

Yuriy
30.03.2017
10:19:54
спасибо

Sergey
30.03.2017
10:41:09
кто пишет интеграционные тесты, делитесь опытом. как поддерживаете инфраструктуру для них? на каждый кейс новая база с фикстурками или поднимаете дамп?

Ivan
30.03.2017
11:53:24
я на каждый кейс фикстурки гружу

Andrew
30.03.2017
12:21:36
+

Google
Evegniy
30.03.2017
12:59:59
Всем привет! Скажите, а кто то работал с сонатой админкой? ModelAutocompleteType::class есть вот такой тип поля. Поиск по нему работает через CallbackFilter::class. Так вот вопрос, как можно в него подставить дефолтное значение?

Vladimir
30.03.2017
13:28:12
@ruzarh Привет, попробуй переопределить метод в админ классе public function getNewInstance() { $instance = parent::getNewInstance(); $instance->setName('my default value'); return $instance; }

setName это соответствено имя твоего филда на который у тебя автокомплит навешан, у меня в последней сонате работает

Yuriy
30.03.2017
13:30:08
настраиваю авторизацию из кастомных провайдеров в браузере циклическое перенаправление на /login предполагаю с ферволом или access_control намутил подскажите пожалуйста где я ошибся: firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false employees: pattern: .* host: '%t_base_host%' provider: employees_user_db form_login: login_path: /login check_path: /login_check access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/test, host: '%t_base_host%', role: ROLE_USER }

Evegniy
30.03.2017
14:30:39
@ruzarh Привет, попробуй переопределить метод в админ классе public function getNewInstance() { $instance = parent::getNewInstance(); $instance->setName('my default value'); return $instance; }
Только сейчас увидел сообщение. Еще не попробовал, сделал хаком пока, переопределил шаблон, в и нем вставил первые элементом нулевое значение.

Разобрался?
Сейчас попробую

Vladimir
30.03.2017
14:31:39
должно заработать по идее

Timur
30.03.2017
14:37:11
Сейчас попробую
У тебя какая связь там? oneToMany?

Evegniy
30.03.2017
14:37:33
ManyToOne

Timur
30.03.2017
14:39:53
ManyToOne
Тебе надо дефолтное значение только при создании новой сущности?

ManyToOne
В твоем админ классе добавь следующий блок (в моем примере по этому полю ищутся школы): if($this->isCurrentRoute('create')) { $em = $this->modelManager->getEntityManager("AppBundle:School"); $school = $em->getRepository('AppBundle:School')->find($id); $formObject = $this->getSubject(); $formObject->setSchool($school); }

Vladimir
30.03.2017
14:48:57
так это по сути, тоже самое и есть

getNewInstance subject и поднимает

Timur
30.03.2017
14:50:08
Это логичнее, чем переопределять метод из-за одного поля

А вообще, знать не помешает. Я например не знал про твой метод. Может и пригодится

Evegniy
30.03.2017
14:53:16
Огромное спасибо! Помогло!

Vladimir
30.03.2017
14:53:18
проверять на то что сущность новая можно и так $this->id($this->getSubject())

и в твиге соответственно также

{% if admin.id(object) is not null %}

Страница 158 из 1418