php idiorm/parisを使用してhas_manyクエリの結果を取得できません。 paris siteの例に続いて、投稿のhas_many結果がオブジェクトとして返されます。idiorm/paris has_many as_array結果セット
オブジェクトを実行して個々のメソッドにアクセスすることはできますが、結果セットを連想配列としてテンプレートエンジンに渡して表示することができます。
例:
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();
私はオブジェクトの記事にアクセスし、次のように設定し、結果を印刷することができる午前:
// echo each post id
foreach ($posts as $post) {
echo $post->id;
}
何私は実際にやってみたいですが、as_array()を使用して、結果セット全体を連想配列として取得し、cによって制限されていますas_arrayが個々の行に対して機能する方法でフィールドを消去します。
$post_list = $posts()->as_array(id,title,post,date);
この、あるいはする$ user-ような何かの呼び出し>ポスト() - > find_many() - > as_array()は動作しません。
parisを使用してこのタイプの結果セットにアクセスする正しい方法は何ですか?
これはあなたのものです'ORM'を直接拡張するのではなく、' ORM'を拡張するクラスで実際に行うべきです。そうしないと、簡単にアップグレードすることはできません。 Idiormのプルリクエストとしてこれを開くことについて考えましたか? – Treffynnon
この機能はIdiom/Parisに追加されました。 [Docs](http://idiorm.readthedocs.org/en/latest/querying.html?highlight=find_array#as-an-associative-array) – alttag