Цитата (twin @ 16.03.2018 - 23:22) |
Да и вообще, это полезно было бы - алиасы. |
$query = $queryFactory->get('Users', 'FindBy');
$query->setCriteria([
'contact_id' => [1,2,3],
'deleted' => $query->expr('NotNull'),
'date_entered' => $query->expr('LessOrEqual', '2015-12-22'),
]);
$query->fetchAll();
$query = $queryFactory->get('Users', 'UserForDeleteInactive');
$query->setPeriod('1 week');
$query->fetchAll();
Цитата (chee @ 16.03.2018 - 23:16) |
Я работал с 3 разными AR, не в одной из них такой функционал не нужен был. Если нужны были какие-то поля у объекта, то выгружались все поля. AR это про упрощение жизни, а не оптимизацию. Ты акцентируешь внимание не на тех вещах и занимаешься каким-то микро-менеджементом. Когда у тебя в системе буду в реальном времени сотни объектов, последнее что ты захочешь это то что бы у них качество (в данном случае набор потенциально заполненных полей) различалось. |
Цитата (chee @ 16.03.2018 - 23:27) |
Очень гибко, а главное, не течет sql через такую абстракцию. Минусом является, один запрос - один класс. Но плюсов намного больше. |
Цитата (chee @ 16.03.2018 - 23:27) |
один запрос - один класс. |
Цитата (twin @ 16.03.2018 - 21:22) |
User::select(['num' => $command->expression('MAX(id)')]) А значит в модели появится поле num, которого нет в таблице. Соответственно модель получится только для чтения. Стоит с этим бороться програмно, или (как мне кажется) не стоит думать о дураках? :) Я имею ввиду защиту от дурака, уж больно громоздкой она получается. :( |
Цитата (Michael @ 17.03.2018 - 06:57) |
какой у них тип, |
Цитата (Michael @ 17.03.2018 - 06:57) |
Например в yii2 ты можешь себе выбрать что то дополнительно в модель, но для этого надо завести самому доп поле |
Цитата (twin @ 17.03.2018 - 05:44) |
Вообще я понял уже, что ничего страшного в этом нет, и что эта возможность есть в мейнстримах. |
Цитата (twin @ 17.03.2018 - 05:44) |
В результате на хайлоаде начали падать сервера. |
Цитата (chee @ 17.03.2018 - 10:37) |
Ведь по факту, ты сейчас расписываешься, что не закрываешь проблемы, которые есть в популярных решениях, а попросту делаешь как сделано у них. Зачем тогда писать своё решение? |
Цитата (chee @ 17.03.2018 - 10:37) |
Давай ты мне скинешь исходники того продукта |
Цитата (chee @ 16.03.2018 - 23:27) |
Минусом является, один запрос - один класс |
Цитата (twin @ 17.03.2018 - 11:54) |
Каждый раз??? Или где то метаданные хранит? А зачем... |
Цитата (twin @ 17.03.2018 - 16:53) |
"А зачем..." я спросил не про метаданные, а про типы. Зачем скрипту знать типы данных? Я подозреваю, что для валидации запросов, что то попадалось в коде. Или еще для чего то? |
PDO::ATTR_EMULATE_PREPARES = false;работают на ура. Распознает и в ту и другую сторону.
PDO::ATTR_STRINGIFY_FETCHES = false;