0

在我的模型里面我有这个代码,这是部分代码

protected function afterFind ()
{
    $car= Car::model()->findAll("car_id = '{$this->model_id}'");
    foreach($car as $cars) {
        $val['car_name'][] = $cars->car_name;
        $val['car_value'][] = $cars->car_value;
    }
    $this->car_arr = $val;

    parent::afterFind();
}

我如何传递数组来查看?当我做这样的事情时,YII 输出了一个错误说 htmlspecialchars() expects parameter 1 to be string, array given

4

1 回答 1

1

Yiiafterfind()方法被覆盖为Postprocess AR 属性。

从文档:

在每条记录由 find 方法实例化后调用此方法。默认实现引发 onAfterFind 事件。您可以在实例化每个新找到的记录后覆盖此方法以进行后处理。确保调用父实现,以便正确引发事件。

所以它通常像这样工作:

protected function afterFind()
{

  $this->attribute_a = customize($this->attribute_a); //return customized attribute_a
  $this->attribute_b = customize($this->attribute_b); //return customized attribute_b
  ....
  parent::afterFind(); //To raise the event
}

我不确定你想做什么?但可能你想在每次找到之后自动化一些任务(填充一些数组)!

在这种情况下,您可以在模型中定义一个公共数组:

$public car_arr = array();

然后将其填充到您的中afterFind(),它将可以在视图中访问。

于 2012-08-18T10:53:12.643 回答