使用cakephp在控制器中添加一个条件

时间:2013-04-08 11:00:30

标签: cakephp

我在控制器中创建了以下功能:

    function beg($status_id = null) {
    if(!empty($status_id)){
        $conditions = array('winner_id >' => 0, 'Product.beginner' => '1', 'Product.status_id' => $status_id);
    }else{
        $conditions = array('winner_id >' => 0, 'Product.beginner' => '1');
    }
    $this->paginate = array('conditions' => $conditions, 'limit' => $this->appConfigurations['adminPageLimit'], 'order' => array('end_time' => 'asc'), 'contain' => array('Product' => array('Category'), 'Status', 'Winner'));

    $this->set('products', $this->paginate('Product'));
    $this->set('statuses', $this->Product->Status->find('list'));
    $this->set('selected', $status_id);
    $this->set('extraCrumb', array('title' => __('Product List', true), 'url' => 'beg'));

    $this->render('beg');
}

我想在其中添加一个条件,即:

在Accounts表中搜索winner_id与accounts表中的'user_id'匹配,并且只在wins列表中的Customers表中添加Products,在Accounts表中(accounts表中的'user_id')。

任何人都知道如何使用此$conditions = array('winner_id >' => 0, 'Product.beginner' => '1', 'Product.status_id' => $status_id);

添加条件

我添加了更多条件,如下面

 $acc_id = $this->Account->find('all', array('Account.user_id'));
$conditions += array('Product.winner_id' => $acc_id);

但它不起作用,请告诉我哪里出错了

2 个答案:

答案 0 :(得分:3)

如果您想为$conditions添加一个条件,而不是尝试使用代码

$conditions += array('Product.status_id' => $status_id);

希望它会有所帮助

答案 1 :(得分:2)

是的,您可以使用下面的代码添加它

if ($account_user){
      $conditions['accounts.user_id'] = $account_userid;
}

上面的代码将在相同的数组$条件中添加一个条件。