2017-02-12 91 views
0

我想检查用户使用HTTP请求传递的ID是否存在于cakephp中的另一个表中。现在,我尝试使用:使用BuildRules检查数据库中是否存在记录(CakePHP 3)

public function buildRules(RulesChecker $rules) 
{ 
    $rules->add($rules->existsIn('id_venue', 'venues')); 
    return $rules; 
} 

但它似乎没有工作。此规则位于预留表中,在此表中我有一个名为id_venue的列,我有另一个名为Venues的表,其中也有一个名为id_venue的主键。

public function initialize(array $config) 
{ 
    parent::initialize($config); 
    $this->table('reservations'); 
    $this->primaryKey('id_reservation'); 
    $this->hasOne('Venues'); 
} 

我有关我的预订表,我的场地表

感谢您的帮助。

回答

0

我以前不完全地了解你需要的呼叫类型,但如果你只需要检查特定的行已经存在,到数据库,你可以使用存在

$table = TableRegistry::get('Venues'); 
$conditions = ['id' => 15]; 
$exists = $table->exists($conditions); //returns true or false 

这类问题已回答: Check if record exists in CakePHP3

+0

这很好,但我必须检查用户在HTTP请求中传递的id例如使用curl,在您的代码中,id是硬编码的。 –

0

existsIn的第一个参数是一个数组,我相信第二个参数是区分大小写的。尝试

$rules->add($rules->existsIn(['id_venue'], 'Venues')); 
相关问题