Php Yii:Framework-从$\u POST查找具有多个相关类别的表

Php Yii:Framework-从$\u POST查找具有多个相关类别的表,php,mysql,database,yii,relationships,Php,Mysql,Database,Yii,Relationships,我在控制器中使用此Yii代码来搜索帖子 $model = Questions::model()->with( array( 'categories' => array ( 'select' => 'name', 'condition' => 'categories.id=:cat_id', 'params' => array (':cat_id' => $_POST["Questions"]["categor

我在控制器中使用此Yii代码来搜索帖子

$model = Questions::model()->with( 
  array( 
    'categories' => array (
      'select' => 'name',
      'condition' => 'categories.id=:cat_id',
      'params' => array (':cat_id' => $_POST["Questions"]["categories"])
    ),
    'countries' => array (
      'select' => 'name',
      'condition' => 'countries.id=:cou_id',
      'params' => array (':cou_id' => $_POST["Questions"]["countries"])
    ) 
  )
)->findAll(array('select' => 'question'));
在POST中的所有数据都不是数组之前,这是正常的

我想更改POST以返回数组。现在,当我以数组形式从查看$_POST['Questions']['categories']返回时,我如何编写Questions::model的条件

我收到通知:

Array to string conversion: this->_statement->bindValue($name, $value, $this->_connection->getPdoType(gettype($value)));
那么,什么是正确的方法呢

-该视图中的帖子代码

CHtml::activeCheckboxList($model, 'countries'CHtml::listData(Countries::model()->findAll(), 'id', 'name'), array('template'=>'<li>{input} {label}</li>',));
$form->dropDownList($model, 'categories', 
                  CHtml::listData(Categories::model()->findAll(), 'id', 'name'),
                  array('prompt' => 'Select category')
            );

如果你需要更多信息,还有我以前的帖子,这是一个延续

好吧,我不太擅长加入,但我会尝试以下方式:

$model = Questions::model()->with( 
  array( 
    'categories' => array (
      'select' => 'name',
    ),
    'countries' => array (
      'select' => 'name',
      'condition' => 'countries.id=:cou_id',
      'params' => array (':cou_id' => $_POST["Questions"]["countries"])
    ) 
  )
)->findAllByAttributes(
    array('categories.id' => $_POST["Questions"]["categories"]), 
    array('select' => 'question'));

虽然我认为这不会返回您想要的内容。

您可以发布发布值的代码吗?是的,我只是编辑了代码。希望就是你的意思。基本上是非常简单的一个类别,现在是一个数组从多个复选框。