У меня проблемы с получением результатов запроса has_many с использованием php idiorm / paris. Следуя примеру с парижского сайта , результат has_many для сообщений возвращается как объект.
Это замечательно, и я могу бегать по объектам и получать доступ к отдельным методам, но я хочу передать набор результатов в виде ассоциативного массива моему механизму шаблонов для отображения.
Пример:
class Post extends Model {
}
class User extends Model {
public function posts() {
return $this->has_many('Post'); // Note we use the model name literally - not a pluralised version
}
}
API работает следующим образом:
// Select a particular user from the database
$user = Model::factory('User')->find_one($user_id);
// Find the posts associated with the user
$posts = $user->posts()->find_many();
Я могу получить доступ к объекту posts и напечатать результирующий набор следующим образом:
// echo each post id
foreach ($posts as $post) {
echo $post->id;
}
Что я действительно хотел бы сделать, так это использовать as_array () для получения всего набора результатов в виде ассоциативного массива, ограниченного определенными полями в том, как as_array работает для отдельной строки, например
$post_list = $posts()->as_array(id,title,post,date);
Это, или вызов чего-то вроде $ user-> posts () -> find_many () -> as_array () не работает.
Как правильно получить доступ к этому типу результатов с помощью Парижа?