1

テーブルにレコードが存在するかどうかを確認するための CakePHP 1.3 用の exists($id) 関数はありますか? 別のサーバーから同期されたデータベースがあります。私のデータベースには、同期されたテーブルと、同期されたテーブルを拡張するために入れたテーブルの 2 つのテーブルがあります。私のアプリは現在、プライマリ(同期)テーブルのすべてのアイテムをリストしており、そのアイテムをクリックすると、2番目のテーブルとは異なる情報を追加するビューに移動します。ID を 2 番目のテーブルに渡します。

私がやりたいことは、最初に2番目のテーブルをチェックして、対応する外部キーを持つレコードが存在するかどうかを確認し、存在する場合は2番目のテーブルのそのレコードの編集画面に移動し、そうでない場合は確認したいレコードは最初のテーブルに存在し、存在する場合は、指定された $id を外部キーとして 2 番目のテーブルにレコードを追加します。

今考えてみると、正しい ID が 2 番目のテーブルに渡されます。ユーザーが数字を入力して、それがプライマリ テーブルに存在すると仮定して、2 番目のテーブルにレコードを追加できるようにしたくありません。実際には存在しません。それを確認する機能がない場合は、関連付けを使用して確認できますか? お気に入り:

if (!$this->Table2->Table1->id) {
    //if id does not exist in parent table don't create the record in the second table and print an error
} else {
    //id does exist in parent table either add a new record with the foreign key being the id passed from parent or redirect to edit screen for that record in second table
}
4

1 に答える 1

6

Model::exists() 関数の場合:

$model->id = 5;
if($model->exists()){
    // Record with ID 5 found
}else{
    // Record not found
}

両方のことを一度にロードして実行することもできます(存在する場合はチェックしてロードします)

$model->id = 5;
if($model->read()){
    // Record exists and you have in $model->data the data
}else{
    // Record not found
}

私がよく理解していれば(私の英語はあまり上手ではありません)、あなたの場合は次のことができます:

if(!$this->Table2->Table1->id || !$this->Table2->Table1->exists()){
    // Table1->id is empty or record not found
}else{
    // Table1->id has id and record exists
}
于 2012-04-27T16:57:57.660 に答える