Я играю с идиомом в течение нескольких дней и мало-по-разному сумел заставить его фактически начать выполнять запросы. Однако я сталкиваюсь с чем-то странным, и я не могу понять. Функция find_many() возвращает только одну запись, и она всегда является последней записью в базе данных. Например, я сделать следующий запрос через MySQLi и я получаю все 16 пользователей в моей базе данных:Idiorm find_many() возвращает только один объект
// connection is just a singleton instance to manage DB connections
$connection->getRawInstance()->getRawConnection()->query('select * from users'));
// The result of this is all 16 users
Теперь, когда я эквивалентный запрос в idiorm я получаю только user16, последний из которых в базе данных.
\ORM::configure('mysql:host=localhost;dbname=------');
\ORM::configure('username', '----');
\ORM::configure('password', '----');
\ORM::configure('logging', true);
$people = \ORM::forTable('users')->findMany();
Кто-нибудь знает, почему это так?
Этот вопрос заставил меня буквально кричать от разочарования. Я думаю, вероятно, это соглашение о том, что первые столбцы в таблице нужно называть просто «id», следует упомянуть очень рано в документации. –
Для людей, которые не хотят просматривать описание ошибки, решение может состоять в том, чтобы изменить имя столбца id на id OR, чтобы указать имя столбца, используя параметр id_column_overrides, например: ORM :: configure ('id_column_overrides', массив ( 'customer' => 'customer_id', )); – adosaiguas