为什么我的图库视图页面抛出一​​个错误? [英] Why is my gallery view page throwing up an error?

查看:120
本文介绍了为什么我的图库视图页面抛出一​​个错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前正在使用codeigniter开发在交互式配置文件中的库,每个用户可以上传自己的图像部分。目前我的视图页面正在抛出一个消息:未定义的变量:images。这是尽管我已经在我的模型中有一个get_images函数,在我的视图中也有一个if语句,所以它会理解不尝试显示图像,如果还没有上传。如何解决这个问题? Im还尝试存储上传到图库数据库的任何图像,以便在每个用户的名称旁边显示他们已上传的任何图像。这是我的代码到目前为止:

Im currently developing using codeigniter a gallery in an interactive profile where each user can upload their own section of images. Currently my view page is throwing up a Message: Undefined variable: images. This is despite I already have a get_images function in my model there also being an if statement in my view so it will understand not to try to display images if none have been uploaded yet. How can i fix this issue? Im also trying to store any image uploaded in a gallery database so that beside each user's name it shows any image they have uploaded. Here is my code so far:

控制器:

class Gallery extends CI_Controller {



function __construct()
{
    // Call the parent construct
    parent::__construct();

    $this->load->model("profiles");
    $this->load->model("gal_model");
    $this->load->helper(array('form', 'url'));

    $this->gallery_path = 'web-project-jb/assets/gallery';
    $this->gallery_path_url = base_url().'web-project-jb/assets/gallery/';

}

function upload()
{

    $config = array(

            'allowed_types' =>'gif|jpg|jpeg|png',
            'upload_path' => $this->gallery_path,
            'max_size' => 10000,
            'max_width' => 1024,
            'max_height' => 768);

    $this->load->library('upload', $config);

    $image_data = $this->upload->data();

    $config = array(
            'source_image'  => $image_data["full_path"],
            'new_image'     => $this->gallery_path. '/thumbs',
            'maintain_ration'   => true,
            'width' => 150,
            'height' => 100


    );


    $this->load->library("image_lib", $config);
    $this->image_lib->resize();

    $username = $this->session->userdata('username');

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        $username = $this->session->userdata('username');


        $viewData['username'] = $username;

        $this->load->view('shared/header');
        $this->load->view('gallery/galtitle', $viewData);
        $this->load->view('shared/nav');
        $this->load->view('gallery/galview', $error, $viewData, array('error' => ' ' ));
        $this->load->view('shared/footer');



    }
    else
    {
        $file_data  = $this->upload->data();

        $image = $this->gallery_path.$file_data['file_name'];

        $data['image'] = $this->gallery_path.$file_data['file_name'];

        $this->username = $this->session->userdata('username');

        $this->gal_model->putGalleryImage($username, $image);

        $this->session->set_userdata($image);

        $viewData['username'] = $username;
        $data['gal_model'] = $this->gal_model->get_images($username);



        $username = $this->session->userdata('username');

        $this->load->view('shared/header');
        $this->load->view('gallery/galtitle', $viewData);
        $this->load->view('shared/nav');
        $this->load->view('gallery/galview', $data, $viewData);
        $this->load->view('shared/footer');


    }
}

function index()
{

    $username = $this->session->userdata('username');

    $this->load->library('upload');

    $data['profileimages'] = $this->gal_model->get_images($username);

    $file_data = $this->upload->data();

    $file_data['file_name'] = $this->gal_model->get_images($username);

    $image = $this->gallery_path.$file_data['file_name'];

    $data['image'] = $file_data['file_name'];


    $viewData['username'] = $username;


    $this->load->view('shared/header');
    $this->load->view('gallery/galtitle', $viewData);
    $this->load->view('shared/nav');
    $this->load->view('gallery/galview', $viewData, $data, array('error' => ' ' ));
    $this->load->view('shared/footer');

}

 }

型号: / p>

Model:

 class Gal_model extends CI_Model
{
var $gallery_path;
var $gallery_path_url;

function Gal_model()
{
    parent::__construct();

    $this->gallery_path = 'web-project-jb/assets/gallery';
    $this->gallery_path_url = base_url().'web-project-jb/assets/gallery/';
}   


function exists($username)
{
    $this->db->select('*')->from("gallery")->where('user', $username);
    $query = $this->db->get();

    if ($query->num_rows() > 0)
    {

        return true;
        /*
         echo "user $user exists!";
        $row = $query->row();
        echo " and his profileimage is $row->profileimage";
        */
    }

    else

    {

        return false;
        //echo "no such user as $user!";
    }

}



function putGalleryImage($username, $image)
{


    $record = array('user' => $username, 'galleryimage' => $image);
    $this->session->set_userdata($image);
    if ($this->exists($username))
    {
        $this->db->where('user', $username)->update('gallery', $record);


    }
    else
    {
        $this->db->where('user', $username)->insert('gallery', $record);

    }


}


function get_images($username)
{

    $this->db->select('*')->from('gal_model')->where('user', $username);

    $files = scandir($this->gallery_path);
    $files = array_diff($files, array('.', '..', 'thumbs'));

    $images = array();

    foreach ($files as $file){
        $images[] = array(
            'url'   => $this->gallery_path_url.$file,
            'thumb_url' => $this->gallery_path_url.'thumbs/'.$file


                );

    }

    return $images;
}

  }

查看:

 <?php if ( is_array($images) && (count($images)>0) ):
   foreach($images as $image): ?>
   <div class="thumb">
       <a href="<?php echo $image['url']; ?>">
          <img src ="<?php echo $image['thumb_url']; ?>"/>
       </a>  
       <br>
   </div>
<?php endforeach; else:  ?>
    <div id = "blank_gallery">Please upload an Image</div>
<?php endif; ?>

再次感谢所有的帮助。

推荐答案

您应该在您的视图中更改您的

You should Change your if in your view to

if(isset($images) && is_array($images)) 

这样,如果$ images in undefined it将nto抛出一个错误,它会跳过所有在一起

that way if $images in undefined it will nto throw an error it will just skip that all together

这篇关于为什么我的图库视图页面抛出一​​个错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆