gpt4 book ai didi

mysql - yii 结合 addColumnCondition

转载 作者:行者123 更新时间:2023-11-29 23:05:15 25 4
gpt4 key购买 nike

提示我如何解决搜索多个属性的问题。

我的 table :
House:id、姓名、别名
参数:id、名称
Parameter_Value:id、house_id、parameter_i、值

需要获得(示例)房屋(宽度=15,高度=9,泳池=1,房间=3)width、height、pool、rooms - 这是parameter_value 记录

如何组合addColumnCondition?按多个参数搜索?

最佳答案

您可以使用和升级此代码。

实际操作:

$parameters = Parameter::model()->findAll();

$criteria = new CDbCriteria();

if ($data = Yii::app()->request->getPost('Parameter')) {
foreach($data as $i => $parameter) {
$criteria->addCondition('parameterValues.value = :value' . $i . ' AND parameterValues.parameter_id = :parameterId' . $i);
$criteria->params[':value' . $i] = $parameter['value'];
$criteria->params[':parameterId' . $i] = $parameters[$i]->id;
}
}

$houses = House::model()->with('parameterValues')->findAll($criteria);

$this->render('view', [
'parameters' => $parameters,
'houses' => $houses,
]);

查看中:

<?php
echo CHtml::beginForm();

foreach($parameters as $i => $parameter) {
echo CHtml::activeTextField($parameter, '[' . $i . ']value');
}

echo CHtml::submitButton('Search');

echo CHtml::endForm();
?>

内部模型:

public function relations() {
return [
'parameterValues' => [self::HAS_MANY, 'Parameter_Value', 'house_id'],
...
];
}

此代码只是示例。我还没有测试过。希望对您有所帮助。

关于mysql - yii 结合 addColumnCondition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com