1

cakephp 1.3 是否有一个exists($id) 函数来查看表中是否存在记录?我有一个从另一台服务器同步的数据库。我的数据库有 2 个表,即同步表,以及我放入的一个以扩展同步表。我的应用程序现在列出了主(同步)表中的所有项目,当他们单击该项目时,它会将它们带到一个视图以添加与第二个表不同的信息。它将 ID 传递给第二个表。

我要做的是首先检查第二个表,看看是否存在具有相应外键的记录,如果存在,然后移动到第二个表中该记录的编辑屏幕,如果不存在,我想确保该记录存在于第一个表中,如果存在,则使用给定的 $id 作为外键将记录添加到第二个表中。

现在考虑一下,它将正确的 id 传递给第二个表,我只是不希望用户能够输入一个数字并假设它存在于主表中并向第二个表添加一条记录,这不会t 实际存在。如果没有检查的功能,我可以使用关联来检查吗?像:

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 回答