0

請求書を送信するときに、送信者と受信者の関係がアクティブでなければならないサイトを作成しようとしています。これは別のテーブルで行われ、他のテーブルではブール値 1 が必要です。

invoices請求書は、次の構造でテーブルに保存されます。

id
sender
receiver
amount
date due

relationshipテーブルの構造は次のとおりです。

id
partyone
partytwo
active

partyonepartytwousers テーブルを参照します。

usersテーブルの構造は次のとおりです。

id
username
password

私が見ようとしているのは、リレーションシップ テーブルに partyone と partytwo が含まれていて、ブール値が 1 に等しい場合です。

これは、新しい請求書を追加するために請求書テーブルにある機能です。ユーザーがそのユーザーとアクティブな関係になる前に、データベースに追加することはできません。

public function addinvoice(){
if($this->request->is('post')) {
    $this->Invoice->create();
    if (0 === $this->relationship->find('count',array('conditions'=>array('activate'=>1,'relationship'=> $relationship)))) {
        $this->Session->setFlash('Sorry, you do not have an active relationship.');
        $this->redirect($this->referer());
    }
    if ($this->Invoice->save($this->request->data)){
        $this->Session->setFlash('The invoice has been saved');
    }
} else { 
    $this->Session->setFlash('The invoice could not be saved. Please, try again.');
}
}
4

1 に答える 1

0

これはあなたの質問に対する簡単な答えです。

次のように検索を変更します。

$relationship = $this->relationship->find('count', array(
    'conditions' => array(
        'partyone' => $user_one_id,
        'partytwo' => $user_two_id,
    ),
));

if (!$relationship) {
    //Error here
} else {
    //Save here
}
于 2012-05-24T22:32:17.097 に答える