2011-01-10 9 views
2

私はKohana ORMでグリップを取得しようとしていますが、私はちょっと立ち往生しています。 category_idに基づいた関係を持つカテゴリモデルと投稿モデルを作成しました。Kohana ORMの関係

投稿とカテゴリのモデルを別々に取得できますが、関係を使用して取得することはできません。たとえば:

// Get first category 
$category = ORM::factory('category', 1); 

foreach ($category->posts as $post) 
{ 
    echo $post->title;     
} 

上記は、ちょうど私に空白の画面を(私はちょうどそれが最初の作業を取得しようとすると、コントローラに何を出力すべきではありません知っている)が得られます。

Model_Categoryオブジェクト([_has_many::保護] =>配列([記事] =>配列([モデル] =>投稿[FOREIGN_KEY] => CATEGORY_ID = [経由]

print_r($category); 

は私にこれを与えます> _rules:protected)=> Array()[_values:protected] => Array()[_validate:protected] => [_rules_one:protected] => Array] [_labels:protected] => Array()[_object:protected] => Array([id] => Array [] [_related:protected] => Array()[_loaded:protected] => [_saved:protected] => 1 [_ソート: protected] => Array([id]カテゴリ[_オブジェクト_保護:保護] =>カテゴリ[_オブジェクト_保護:保護] =>カテゴリ[_テーブル_列:保護] =>配列の型は次のようになります。array [type] => int [min] => 0 [max] => 65535 [column_name] => id [column_default] => [data_type] => smallint unsigned [is_nullable] => [ordinal_position] => PRI [特権] =>選択、挿入、更新、参照)[タイトル] =>配列([タイプ] =>文字列[character_maximum_length ] [=] [>] [=] [>] [=] [>] [=] [>] [=] [>] [description] =>配列([type] =>文字列[character_maximum_length] => 65535 [column_name] =>説明[column_default] => [data_type] => [権限] => > text [is_nullable] => [ordinal_position] => 3 [collat​​ion_name] => latin1 [_igned_columns:protected] => Array()[_updated_column:protected] => [_created_column:_swedish_ci [コメント] => [追加] => [キー] => [権限] => 1 _ [_db:保護された] => Database_MySQLオブジェクト([_connection_id:protected] => [_primary_key:保護された] => id [_primary_val:プロテクト] =>名前[_table_names_plural:プロテクト] => 1 [_reload_on_wakeup: ] => d6ad44aa068ae69071b9614f2a4a760bf55d9307カテゴリ:[_インスタンス:保護] =>デフォルト[_接続:保護] =>リソースID#36 [_config:protected] =>配列([型] => mysql [接続] utf8 [キャッシング] => [プロファイリング] => 1))[_db_applied:> [charset] =>ローカルホスト[データベース] => cms_test_kohana [persistent] =>プロテクト] => 1 [_db_builder:プロテクト] => [_with_applied:プロテクト] => Array()[_preload_data:protected] => Array()[_db_pending:protected] => Array())

誰でも手助けできますか?

アドバイスありがとうございます。

ありがとうございました。

+0

モデルの設定を表示する – biakaveron

答えて

2

投稿はリレーションシップであり、コレクションではありません。関係のfind_all()またはfind()を使用してレコードのコレクションを返します。

foreach ($category->posts->find_all() as $post) { 
    echo $post->title;     
} 

また、などORDERBYを使用して、返される結果をフィルタリングするために関係する様々な他の方法を適用することができます...