我们的Yii Framework应用程序定义为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;
}
如何将上面的代码段连接到我视图中的窗口小部件,以返回给定用户的所有图像?
奖金问题:您建议使用哪种图像旋转器进行上述渲染?
答案 0 :(得分: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,以防你不想指定任何参数。