0

私はFuelPHPでORMを使用してモデルを構築しようとしていますが、これまでORMを使用したことがないため、特定の側面についてはよくわかりません。

テーブルProjectとテーブルリビジョンがあります。現在、プロジェクトには複数のリビジョンがあり、リビジョンには1つのプロジェクトしかありません。

ただし、ProjectとRevisionの間に追加のリンクがあり、常に最新のリビジョンのIDをProjectテーブルに保持しています。

私のテーブルは次のようになります。

projects
- id
- latest_revision_id
- ...

revisions
- id
- project_id
- ...

プロジェクトモデル:

class Model_Project extends Orm\Model
{

    protected static $_belongs_to = array(
        'latest_revision' => array(
            'key_from' => 'latest_revision_id'
        ),
    );

    protected static $_has_many = array(
    'revisions',
    );

...

}

改訂モデル:

class Model_Revision extends \Orm\Model
{

    protected static $_belongs_to = array(
        'project',
    );

    protected static $_has_one = array(
        'project' => array(
            'key_to' => 'latest_revision_id',
        ),
    );

}

ただし、アクセスしようとすると、次のようになります。

$project->latest_revision

それは私にOutOfBoundExceptionを与えます:OutOfBoundsException [ Error ]: Property "latest_revision_id" not found for Model_Project.

私は何かが足りないのですか?

ありがとう!

4

1 に答える 1

1

$_properties配列にlatest_revision_idを追加する必要があったようです。質問を投稿する前に試したことを誓いますが、その時点で別の問題があったと思います!

だから私のプロジェクトモデルは今:

protected static $_belongs_to = array(
    'latest_revision' => array(
        'key_from' => 'latest_revision_id',
        'model_to' => 'Model_Revision',
    ),
);

protected static $_has_many = array(
    'revisions',
);

protected static $_properties = array(
    'id', 
    ..., 
    'latest_revision_id',
);
于 2012-07-03T12:36:11.350 に答える