Cakephp 3:如何在get方法中给出条件?

时间:2015-08-03 05:41:01

标签: cakephp cakephp-3.0

我试图在cakephp 3 get方法中给出一个条件,其中数据将通过外部id获取而不是主键。在这里,我尝试了下面的代码:

$eventPasswordAll = $this->EventPasswordAll->get($id, [
            'conditions'  => ['event_id'=>$id],
            'contain'     => ['Events']
]);

但它根据id(primary key)向我显示数据,而不是event_id。我如何在get event_id=my get id等方法中添加此条件?

2 个答案:

答案 0 :(得分:6)

请勿使用get,请使用find。根据{{​​3}},CakePHP 3.0 Table API方法:

  

通过主键查找后返回单个记录,如果未找到记录,则此方法抛出异常。

您需要使用get

$eventPasswordAll = $this->EventPasswordAll->find('all', [ // or 'first'
    'conditions' => ['event_id' => $id],
    'contain'    => ['Events']
]);
// or
$eventPasswordAll = $this->EventPasswordAll->find()
    ->where(['event_id' => $id])
    ->contain(['Events']) ;

答案 1 :(得分:0)

有时您想获取ID和用户ID。

$this->loadModel('Jobapplications');
$application = $this->Jobapplications->find('all', [ 
  'conditions' => ['id' => $id, 'user_id' => $user_id]
]);
$application = $application->first();