1

我想显示成员的所有照片库。对于这些照片画廊中的每一个,我都想显示来自画廊的随机照片作为封面照片。我在这个项目中使用 CodeIgniter 2.1.4。最初我以为我可以在控制器中运行一个 foreach() 循环,查询一张随机照片,然后将其添加到对象中。但是,这样做时(当前代码如下)我收到以下错误“尝试分配非对象的属性”。此错误发生在我尝试将缩略图添加到 $data['albums'] 对象的行。

public function index() {
    $data['albums'] = $this->album_model->get_many_by('profile_id', $this->member_id);
    // I need to grab a random photo to display
    foreach ($data['albums'] as $album) {
        $thumb = $this->photo_model->order_by('id', 'rand')->limit(1)->get_by('album_id', $album->id);
        $data['albums']->thumbnail = $thumb->thumbnail;
    }
    $data['current_albums'] = $this->album_model->count_by('profile_id', $this->member_id);
    $this->load->model('profile_model');
    $data['maximum_albums'] = $this->profile_model->with('membership')->get($this->member_id);
    $data['allowed_albums'] = $data['maximum_albums']->membership->albums - $data['current_albums'];
    $this->layout->title(site_name() . ' | My Albums');
    $this->layout->view('member/albums/index', $data);
}

我将如何为对象添加另一个值,这甚至是最好的方法吗?我不确定通过 MySQL 执行此操作是否最好,而且我不确定如何操作。提前致谢。

4

1 回答 1

0
function get_random_image() {

    $this->db->order_by('id', 'RANDOM'); //takes over randomness
    $this->db->limit(1); //gets only one record
    //$this->db->where(); //if needed
    $query = $this->db->get('images'); //from what table

    return $query->result_array();

}

RANDOM 负责您的“随机性”,请参阅有关 MySQL 随机性本身的线程。


评论:

foreach ($data['albums'] as $key => $album) {

    $thumb = $this->photo_model->order_by('id', 'rand')->limit(1)->get_by('album_id', $album->id);
    $data['albums'][$key]->thumbnail = $thumb->thumbnail;

}
于 2013-09-19T23:36:45.453 回答