1

私はDebatePagehas_many 票を持っています:

static $has_many = array(
    'Votes' => 'Vote'
);  

および対応するVote DataObject

static $belongs_to = array(
    'DebatePage' => 'DebatePage'
);

ユーザーが「はい」をクリックすると、そのページへの投票を保存したいと思います。

その構文は何ですか?

私はこのようなことをしようとしています:

$this->dataRecord->Votes()->add($array('motion' => true));

これを正しく行うにはどうすればよいですか?

4

3 に答える 3

7

@3dgoo が書いたものと似ていますが、構文が異なり、以下を利用しています::create()

$vote = Vote::create(array(
    'Motion' => true
));
$this->Votes()->add( $vote );

これはDebatePageVoteリレーションがVotesと呼ばれることを意味します。-relation$belongs_toに変更する必要があります。$has_one

于 2013-07-31T06:44:58.293 に答える
2

データベースに新しい投票を作成する関数は次のとおりです。

public function SubmitVote() {
    $vote = new Vote();
    $vote->DebatePageID = $this->ID;
    $vote->Motion = true;
    $vote->write();
}

VoteDataObject は、ではなくとの$has_one関係を持つ必要があることに注意してください。DebatePage$belongs_to

static $has_one = array(
    'DebatePage' => 'DebatePage'
); 
于 2013-07-31T05:54:24.040 に答える
0

必要に応じて手動で has_many にオブジェクトを追加できますが、既に自動的に行われています。$object->ForreignID = $hasOneObject->ID の後に $form->saveInto($object) を使用すると、オブジェクトが has_many 関係に自動的に追加されます。

于 2014-09-08T06:46:54.153 に答える