Yii:框架 - 查找来自$ _POST的多个相关类别的表

时间:2013-09-12 15:35:28

标签: php mysql database yii relationships

我在控制器中使用此Yii代码在POST后搜索

$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')
            );

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

1 个答案:

答案 0 :(得分:0)

我加入时并不是那么好,但我会尝试类似的东西:

$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'));

虽然我不认为这会回复你想要的东西。