Ivan
what $student->getGuardian()->getEmail() returns?
Ivan
perhaps there is typo in email
Anonymous
When there is no email or invalid address then it throws this error.
Anonymous
It works.
Anonymous
I want to access the email of the student into DailyReport entity from Student entity. How can I do this?
Ivan
not enough information about entities and their relationships
Anonymous
Student to DailyReport is OneToMany and DailyReport to Student is ManyToOne.
Anonymous
DailyReport can access only student name.
Anonymous
public function getEmail()
{
$students=new Student();
$email=$students->getEmail();
return $email;
}
I tried doing this but it doesn't work.
Ivan
make dump(students); die; students and look inside
Ivan
may be $students->initialize() will help
Ivan
wow.. why new Student() ?
Ivan
where is loading from db?
Anonymous
I put this function in DailyReport Enity
Anonymous
I thought maybe in this I can access email of student.
Ivan
and check this: php bin/console doctrine:schema:validate
Anonymous
[Mapping] OK - The mapping files are correct.
[Database] OK - The database schema is in sync with the mapping files.
Ivan
also you can try to use fetch="EAGER"
if you use annotations it's may looks something like this:
class DailyReport
{
/**
*@ORM\ManyToOne(targetEntity="Student", inversedBy="reports", fetch="EAGER")
*@ORM\JoinColumn(name="student_id")
*/
protected $student;
}
Ivan
but probably it's not goof idea :)
Anonymous
It doesn't work.
Anonymous
If I use @ORM\JoinColumns(
@ORM\JoinColumn(name="student_id", referencedColumnName="id")
@ORM\JoinColumn(name="email", referencedColumnName="email")
Can it solve my problem?
Kirill
Can you show entire code of your Student and DailyReport entity classes?
You can use gist.github.com to share the code
Kirill
You can't get email value from student entity object at report entity. This is your issue? Did I understand correctly?
Anonymous
Yes this is my issue.
Anonymous
I get it working $dailyReport->getStudent()->getEmail();
Anonymous
Do you have any other idea?
Павел
Hmm... MB
$student = $dailyReport->getStudent();
$email = $dailyReport->getEmail();
?
Павел
You cant get 2 func what return results
Павел
$dailyReport is your entitiy obj?
Anonymous
Yes dailyReport is object of DailyReport entity.
Павел
So... If you need to get an email field - dump($dailyReport->getEmail());
Павел
If $dailyReport is a odinary obj. not a array where obj is
Ivan
Чисто архитектурно-организиционный вопрос. Допустим нужно сделать сайт с мультиязычностью. Допустим имеется в БД таблица article. Есть таблица category. Пусть будет category{id, title, decription}. Таблица artcile имеет разные записи для разных языков, типа article {id, title, text, lang}. Но вот запись в category дожна быть универсальной для разных языков, по идее. Сделать в category несколько полей? По типу cat{id, title_ru, title_en, title_cn, desc_ru, desc_en, desc_cn}. Или сделать отдельное поле с JSON внутри? Типа cat{id, title, desc, translations}. А там уже что-то вроде en: {title: "Motherfucker", desc: "Yea, I am"}, cn: {title: "Some weird shit"}
Alexey
Чисто архитектурно-организиционный вопрос. Допустим нужно сделать сайт с мультиязычностью. Допустим имеется в БД таблица article. Есть таблица category. Пусть будет category{id, title, decription}. Таблица artcile имеет разные записи для разных языков, типа article {id, title, text, lang}. Но вот запись в category дожна быть универсальной для разных языков, по идее. Сделать в category несколько полей? По типу cat{id, title_ru, title_en, title_cn, desc_ru, desc_en, desc_cn}. Или сделать отдельное поле с JSON внутри? Типа cat{id, title, desc, translations}. А там уже что-то вроде en: {title: "Motherfucker", desc: "Yea, I am"}, cn: {title: "Some weird shit"}
Можно посмотреть, например, на Translatable из DoctrineExtensionsBundle. Там переводы хранятся в отдельной таблице и если понадобится добавлять-убирать языки - ничего не сломается.
Alexey
https://symfony.com/doc/master/bundles/StofDoctrineExtensionsBundle/index.html
Ivan
оу, это тот самый пакет, где есть всякие Suggable, Timestampable и прочее
Alexey
Да.
Ivan
ок, спасибо, погляжу
Роман
кто нить tmux юзает?
Ivan
судя по этой https://habrahabr.ru/post/192228/ статье многие предпочитают отдельные таблицы перевода. Значит стоит остановиться на Translatable
Ivan
правда надо подумать слагифаером, по идее для каждой переводоной сущности со слагом нужен отдельный слаг
Роман
кто то знает SeleniumWebDriver?
Rodion
да
Роман
waitForElement() вернет первый найденные елемент и на этом все, так?
Rodion
Checks, that the page should contains specified element after timeout
Rodion
по идее да
Rodion
$node = $this->getSession()->getPage()->findAll('css', $element);
$this->assertCount(1, $node);
$found = true;
Rodion
да
Роман
ок, спс
Роман
в консольке браузера нода находится, копирую этот запрос для waitForElemen(Web Driver $by, 10, false) - говорит что не нашел ноду
Роман
мб важно, один xpath for waitForElemen работает, но этот xpath находит 2 ноды, waitForElement возвращает первую, говорю взять второй элемент - (//xpath)[2], метод говорит, что не нашел ноду
Роман
что за бред??
Rodion
http://stackoverflow.com/questions/2407781/get-nth-child-of-a-node-using-xpath
Роман
спс конечно, но это не помогло, пробовал...
Rodion
расширение для behat тогда можно воткнуть https://github.com/Behatch/contexts
Дмитрий
Ребята, подскажите как сделать контролео который будет выполняется всегда перед остальными?
Не зависимо какой урл и маршрут
Aleksei
Листнер тебе нужен а не контролер
Danil
Google "Before after request symfony" на реализацию нужного листенера приведет тебя
Rodion
@the_coder http://symfony.com/doc/current/components/http_kernel.html#the-kernel-controller-event
Дмитрий
кто на phpstorm сидит?
Aleksei
я
Ivan
я
Danil
М
Danil
Я видел как в sublime подрубали PHP Annotations
Дмитрий
подскажите тогда, в настройках проекта в PHP указал framework папку vendor. Классы, методы подставлются, но сейчас учусь работать с БД и делаю как в примере
$repository = $this->getDoctrine()->getRepository('NVBSAccidentBundle:Kpiform');
$query = $repository->createQueryBuilder('p')
->where('p.year = ' . $year)
->orderBy('p.week', 'DESC')
->getQuery();
$week = $query->getResult();
createQueryBuilder и getResult phpstorm выделяет - метод не найден.
Может я должен был еще что-то подключить?
Дмитрий
запрос выполсняется
Aleksei
надо указать какой тип $repository
Aleksei
в docblock
Aleksei
->where('p.year = ' . $year) — так не делайте
Aleksei
andWhere('p.year = :year')->setParameter('year', $year)
Aleksei
и для $query тоже указать тип
Дмитрий
что-то все так сложно :)
Danil
Потом будет DQL + RSM
Aleksei
https://phpdoc.org/docs/latest/guides/docblocks.html
Дмитрий
что за типы надо указать, в документации что-то про это ничего нет http://symfony.com/doc/current/doctrine.html
Aleksei
а плагин symofny подключен?
Aleksei
классы
Aleksei
то что возвращает метод
Danil
Да и вроде репозитории созданы чтобы не делать так:
$repository = $this->getDoctrine()->getRepository('NVBSAccidentBundle:Kpiform');
$query = $repository->createQueryBuilder('p')