Php 未返回条件yii中的正确行
我一直保持着第一张唱片。是的,我知道我写了Php 未返回条件yii中的正确行,php,yii,Php,Yii,我一直保持着第一张唱片。是的,我知道我写了$model[0],但是为什么它不使用函数来获取给定产品id的第一条记录呢?似乎不管参数中有什么,它都只返回第一条记录 控制器: foreach ($basket as $item){ if($item->product->store_id==$value){ //here... tried hard coding different things in the params.. doesn't work $
$model[0]
,但是为什么它不使用函数来获取给定产品id的第一条记录呢?似乎不管参数中有什么,它都只返回第一条记录
控制器:
foreach ($basket as $item){
if($item->product->store_id==$value){
//here... tried hard coding different things in the params.. doesn't work
$shipping = table::model()->getProductShipRate(322, $from, $to);
$ship_fee = $shipping[0]->ships_to_fee;
//blah blah
print_r($shipping[0]->add_cost); // always give me the first entry.
}
}
型号:
public function getProductShipRate($pid,$from,$to){ //doesn't do anthing dont know why.
$criteria = new CDbCriteria();
$criteria->condition='product_id="'.$pid.'"';
$criteria->condition='ships_from="'.$from.'"';
$criteria->condition='ships_to="'.$to.'"';
$record =$this->findAll($criteria);
if(!empty($record))
return $record;
}
错误如下:
$criteria = new CDbCriteria();
$criteria->condition='product_id="'.$pid.'"';
$criteria->condition='ships_from="'.$from.'"';
$criteria->condition='ships_to="'.$to.'"';
您用下一个字符串替换了条件。使用以下命令:
$criteria = new CDbCriteria();
$criteria->addCondition('product_id="'.$pid.'"');
$criteria->addCondition('ships_from="'.$from.'"');
$criteria->addCondition('ships_to="'.$to.'"');
但最好看看这个:
public function getProductShipRate($pid,$from,$to){
return $this->findAll(
'product_id = :pid AND ships_from = :from AND ships_to = :to'
['pid' => $pid, 'from' => $from, 'to' => $to]
);
}
+1用于使用参数。。或者可以使用$criteria->params=array();