0

我们的 Yii 框架应用程序将以下内容定义为 UserProfileImages 模型的一部分:

public function getProfileImages($param, $user_id) {
        if(isset($param['select']) && $param['select']=='all'){
            $profile_images = UserProfileImages::model()->findAllByAttributes( array( 'user_id'=>$user_id) );

        } else {
            $profile_images = UserProfileImages::model()->findByAttributes( array( 'user_id'=>$user_id) );
        }
        return $profile_images;
    }

我如何将上面的代码片段连接到我视图中的小部件以返回给定用户的所有图像?
额外问题:您建议使用哪个图像旋转器来渲染上述内容?

4

1 回答 1

1

在您的视图文件中,添加类似这样的内容,假设您的控制器指定了 $user_id:

$this->widget('UserProfileImagesWidget', array(
    "userProfileImages" => UserProfileImages::getProfileImages(
        array("select" => "all"), 
        $user_id
     ),
     "user_id" => $user_id
)); 

根据您的 MVC 理念,您还可以在控制器中检索 userProfileImages 数据并将该数据传递给您的视图。

像这样定义一个小部件:

class UserProfileImagesWidget extends CWidget {
    public $user_id;
    public $userProfileImages = array();

    public function run() {
        $this->render("userProfileImage");
    }
}

最后,在 userProfileImages.php 视图文件中,您可以执行以下操作:

if(!empty($this->userProfileImages)) {
    // Your display magic
    // You can access $this->user_id
}

附带说明:您可能希望更改 getProfileImages 中参数的顺序。如果 $user_id 是第一个参数,您可以完全省略 $params 以防您不想指定任何参数。

于 2012-08-24T09:03:49.287 回答