Используя codeigniter 3, встроена функция просмотра поста в блоге слагом, чтобы показать полный текст из миниатюрного изображения.
Все, что я нажимаю на сообщение в блоге, я получаю ошибку 404, я проверил свои маршруты, орфографию и таблицу и все еще получаю ту же ошибку.
Слаг сделан из функции url_title.
У меня закончились идеи.
маршрут: (я переместил его сверху вниз)
$route['Content/(:any)'] = 'Content/blogview/$1';
функция: (убрал 404 также все тот же вопрос)
public function blogview($slug=NULL) {
$data['Bpost'] = $this->Blog_Model->get_bposts($slug);
if(empty($data['Bposts'])){
show_404();
}
$this->load->view('templates/header');
$this->load->view('blogfull',$data);
$this->load->view('templates/footer');
}
Модель:
public function get_bposts($slug = FALSE) {
if($slug === FALSE){
$this->db->order_by('date','DESC');
$query = $this->db->get('blogposts');
return $query->result_array();
}
$query = $this->db->get_where('blogposts',array('slug'=>$slug));
return $query->row_array();
}
Это мой htaccess, если нужно.
RewriteEngine On
RewriteBase /main
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Я собираюсь догадаться, что это будет проблема маршрута. У меня те же функции на другом сайте, и они отлично работают. У меня действительно закончились идеи о том, что это может быть.
Функция ведения блога для отображения одного поста в таблице, который загружает миниатюрный пост. Я использую foreach () для их циклического просмотра.
public function blogging() {
$data['Bposts'] = $this->Blog_Model->get_bposts();
$this->load->view('templates/header');
$this->load->view('blogging',$data);
$this->load->view('templates/footer');
}
Обновление с дополнительной информацией:
Это все мои маршруты:
$route['Content/blogging'] = 'Content/blogging';
$route['Content/bloggingposts'] = 'Content/bloggingposts';
$route['Content/(:any)'] = 'Content/blogview/$1';
$route['Content/mail'] = 'Content/mail';
$route['Content/signed'] = 'Content/signed';
$route['Content/contactme'] = 'Content/contactme';
$route['Content/contact'] = 'Content/contact';
$route['Content/adminview']='Content/adminview';
$route['Content/blogpost']='Content/blogpost';
$route['Content/(:any)'] = 'Content/fullview/$1';
Все функции блога в контроллере:
public function blogging(){
$data['Bposts'] = $this->Blog_Model->get_bposts();
$this->load->view('templates/header');
$this->load->view('blogging',$data);
$this->load->view('templates/footer');
}
public function blogview($slug=NULL) {
$data = array();
$data['Bpost'] = $this->Blog_Model->get_bposts($slug);
$this->load->view('templates/header');
$data['view'] = 'blogfull';
$this->load->view('templates/footer');
}
public function bloggingposts(){
$data['title']= "Admin Area";
$title=$this->input->post('title');
$slug = url_title($title, 'dash', true);
$this->form_validation->set_rules('title','Title',array('required', 'min_length[1]'));
if($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header');
$this->load->view('adminblogging',$data);
$this->load->view('templates/footer');
} else {
$image = "";
if($_FILES['userfile']['name'] != "")
{
if($_FILES['userfile']['type'] == 'image/jpeg'){
$ext = ".jpeg";
} else if($_FILES['userfile']['type'] == 'image/png'){
$ext = ".png";
}
$image = time();
$config = array(
'file_name' => $image,
'upload_path' => "assets/blogimg/",
'allowed_types' => "jpg|png|jpeg",
);
$this->upload->initialize($config);
if(!$this->upload->do_upload('userfile')){
$this->session->set_flashdata( 'error_msg', $this->upload->display_errors());
redirect('Content/adminview');
}
else {
$this->Blog_Model->bposting($image,$slug);
$image = "assets/blogimg/".$image;
}
} else {
$this->Blog_Model->bposting($image,$slug);
}
$this->session->set_flashdata('post_created','Your Post has been submitted');
redirect('Content/blogging');
}
}
Модели для функций блога:
public function get_bposts($slug = FALSE){
if($slug === FALSE){
$this->db->order_by('date','DESC');
$query = $this->db->get('blogposts');
return $query->result_array();
}
$query = $this->db->get_where('blogposts',array('slug'=>$slug));
return $query->row_array();
}
public function bposting($image,$slug){
$data = array(
'slug'=>$slug,
'the_image' => $image,
'title'=>$this->input->post('title'),
'body'=> $this->input->post('body'),
);
return $this->db->insert('blogposts',$data);
}