我在控制器中使用此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
答案 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'));
虽然我不认为这会回复你想要的东西。