LINUX.ORG.RU

Symfony 2.5 Doctrine

 , , ,


0

1

День добрый форумчане. В symfony 2.5 в качестве ORM по умолчанию используется Doctrine. Вот у них пример выборки всех продуктов, возьмем пример с офф. документации

$repository = $this->getDoctrine() ->getRepository('AcmeStoreBundle:Product');

$products = $repository->findAll();

Я делал также но для своего случая, но меня смутило то, что когда я делаю var_dump результата выборки,то помимо необходимых обьектов, мне еще и выводит кучу инфы, вообще ненужной, и чтобы получить значение поля к примеру title, нужно использовать метод getTitle(), но также я видел и такой пример

$conn = $this->get('database_connection'); $users = $conn->fetchAll('SELECT * FROM users');

Просто делема в том какой метод лучше будет, так как для второго нужен класс Controller, а в первом если нужно все поля записи мне получить для кажого обьекта, это нужно как-то идти в цикле да и для каждого поля делать getFieldName(); , как по мне решение не очень, или может лучше как-то расширить класы Entity дописав свои методы на выборку все полей , или сесть писать свои модели основываясь на втором решении и как-то результат уже закидывать в контроллеры.



Последнее исправление: cetjs2 (всего исправлений: 1)

Я делал также но для своего случая, но меня смутило то, что когда я делаю var_dump

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

umren ★★★★★
()
Ответ на: комментарий от umren

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

Berdin
() автор топика
Ответ на: комментарий от Black_Roland

Не работает, нужно что-то другое. Не охота фреймвормк менять из-за этой ORM, а проект писать надо. Вот ищу пути как его сделать адекватно.

Berdin
() автор топика
Ответ на: комментарий от Berdin

Как мне тогда это обойти?

С ходу не помню, гуглил в свое время, есть зоопарк решений, дебаг панелью пользоваться ихней вроде самое верное.

umren ★★★★★
()
Ответ на: комментарий от umren

Да тут даже не в дебаге проблема. Вопрос в том как к примеру весь обьект с ключами отдать ангулару а там уже отобразить, потому что так ORM помимо самого этого обьекта отдает кучу лишней инфы, и плюс мне же нужны поля записи) Выходит их как-то через get-еры нужно вытягивать для кажого обьекта, если их к примеру много у меня.

Berdin
() автор топика
Ответ на: комментарий от Berdin

Вопрос в том как к примеру весь обьект с ключами отдать ангулару а там уже отобразить

toArray(), потом json_encode наверное :)

umren ★★★★★
()
Ответ на: комментарий от umren

с json_encode все понятно, вот тут с toArray() делема) Делал , пишет нельзя метод toArray() использовать и т.д., может не к тому использовал.

Berdin
() автор топика
Ответ на: комментарий от umren

Ну да чувствую буду рыться в исходниках этой Doctrine) Просто банальная же задача) Охота вытянуть обьект , json_encode и уже на front-end разобрать, но нет) Doctrine сделала все свойства класса приватными и фиг просто так без get-еров получишь значение свойств)

Berdin
() автор топика
\Doctrine\ORM\Query::HYDRATE_ARRAY

/thread

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.