简体   繁体   English

CodeIgniter:找不到您要求的页面

[英]CodeIgniter: The page you requested was not found

I have the following error: 我有以下错误:

404 Page Not Found 404页面不存在

The page you requested was not found. 未找到您所请求的页面。

Posted below are my code files. 以下是我的代码文件。

Controller code: 控制器代码:

<?php
  defined('BASEPATH') OR exit('No direct script access allowed');
  /**
   *
   */
  class Pages extends CI_Controller
  {

    public function view($page='home')
    {
      # code...
      if (!file_exists(APPPATH.'views/ds_pages/'.$page.'.php')) {
        # code...
        show_404();
      }
      $data['title']=ucfirst($page);
      $data['portfolios']= $this->page_model->get_portfolios(FALSE);
            $this->load->view('templates/header');
            $this->load->view('ds_pages/'.$page,$data);
            $this->load->view('templates/footer');
    }

    public function portfolio_view($slug= NULL)
    {
      # code...
      $data['portfolio']=$this->page_model->get_portfolios($slug);

      if (empty($data['portfolio'])) {
        # code...
        show_404();
      }

      $data['title']= $data['portfolio']['title'];
            $this->load->view('templates/header');
            $this->load->view('ds_pages/portfolio_view',$data);
            $this->load->view('templates/footer');
    }

    public function create(){
            # code...
            $data['title']= 'Create Portfolio';

            $this->form_validation->set_rules('title','Title','required');
            $this->form_validation->set_rules('body','Body','required');
            if($this->form_validation->run() === FALSE){
                $this->load->view('templates/header');
                $this->load->view('ds_pages/create',$data);
                $this->load->view('templates/footer');
            }else{
                $config['upload_path']= './assets/images/pages';
                $config['allowed_types']= 'gif|jpg|png';
                $config['max_size']= '2048';
                $config['max_width']= '2000';
                $config['max_height']= '2000';

                $this->load->library('upload',$config);
                if (!$this->upload->do_upload()) {
                    # code...
                    $errors=array('error'=> $this->upload->display_errors());
                    $portfolio_image='placeholder.png';
                }else{
                    $data=array('upload_data' => $this->upload->data());
                    $portfolio_image= $_FILES['userfile']['name'];
                }

                $this->page_model->create_portfolio($portfolio_image);
                //set message
                $this->session->set_flashdata('portfolio_created','Your portfolio has been created');

                redirect('pages/view');
            }
        }
  }


 ?>

Then in Model I have the following code: 然后在模型中,我有以下代码:

<?php
  /**
   *
   */
  class Page_model extends CI_Model
  {

    public function __construct()
    {
      # code...
      $this->load->database();
    }

    public function get_portfolios($slug=FALSE){
                # code...
          if ($slug === FALSE) {
            # code...
            $query= $this->db->get('portfolios');
            return $query->result_array();
          }
          $query= $this->db->get_where('portfolios', array('slug' => $slug));
                  return $query->row_array();
            }
      public function create_portfolio($portfolio_image)
        {
            # code...
            $slug= url_title($this->input->post('title'));
            $data= array(
                    'title' => $this->input->post('title'),
                    'slug'=>$slug,
                    'body'=>$this->input->post('body'),
                    'portfolio_image'=> $portfolio_image
                );
            return $this->db->insert('portfolios',$data);
        }
  }

 ?>

And this is my View: 这是我的观点:

<small class="post-date"><?php echo $portfolio['created_at']; ?></small><br/>
<div class="row">
    <div class="col-md-3">
        <img src="<?php echo site_url();?>assets/images/pages/<?php echo $portfolio['portfolio_image'];?>">
    </div>
    <div class="col-md-9">
        <h2><?php echo $portfolio['title']; ?></h2>
        <div class="post-body">
            <?php echo $portfolio['body']; ?>
        </div>
    </div>
</div>
<hr/>
<a class="btn btn-info pull-right" href="edit/<?php echo $portfolio['slug']; ?>">Edit</a>
<?php echo form_open('/pages/delete/'.$portfolio['id']);?>
  <input type="submit" name="delete" class="btn btn-danger" value="Delete" />
</form>

Finally, this code bellow is routes.php: 最后,下面的代码是routes.php:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');


$route['pages/view']='pages/view';
$route['pages/create']='pages/create';
$route['pages/(:any)']='pages/portfolio_view/$1';
$route['pages']='pages/view';

$route['default_controller'] = 'pages/view';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Please Help me and thank you in advance. 请帮助我,谢谢你。

You should use 你应该用

$route['pages/(:any)/(:any)'] = "pages/portfolio_view/$1"; $ route ['pages /(:any)/(:any)'] =“ pages / portfolio_view / $ 1”;

instead of 代替

$route['pages/(:any)']='pages/portfolio_view/$1'; $路线[ '页/(:任何)'] = '页/ portfolio_view / $ 1';

in routes.php 在routes.php中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM