覆盖查找结果关联中定义的条件


Overriding a condition defined in an association in a find

我有一个服务,用户可以将汽车上传到网站,并从列表中选择制造商和型号。如果汽车模型不存在,用户可以在特定制造商下保存新模型。

现在解决我的问题,所有模型都必须由主持人确认为有效类型,拼写正确,并且不是重复的等。所有已确认的型号对其他用户可见。我通过在汽车关联中指定一个条件来做到这一点,如下所示:

$belongsTo = array(    
  'CarModel' => array(
      'className' => 'CarModel',
      'foreignKey' => 'car_model_id',
      'conditions' => array('CarModel.confirmed' => 1),
      'fields' => '',
      'order' => ''
  ));

但是,我想在编辑操作中覆盖此条件,以便用户可以看到他的模型,即使它们尚未确认。在查找条件下可能吗?

问候罗兰。

您可以在调用 find() 方法之前绑定模型。在你的行动中试试这个。

    $this->ModelName->bindModel(
        array('belongsTo' => array(
                'CarModel' => array(
                    'className' => 'CarModel',
                    'conditions' => array('CarModel.confirmed' => 0),  // Define your new condition here
                )
            )
        )
    );
$data = $this->ModelName->find('all'); // Now you will get the data for new condition applied

希望它能奏效。