2016-04-04 15 views
1

Okay, also ich habe gerade angefangen, CodeIgniter letzte Nacht zu lernen und ich bin gerade dabei, den letzten Teil des Tutorials zu beenden, aber ich bekomme eine 404-Seite Fehler nicht gefunden, wenn ich auf das Senden klicken Taste.CodeIgniter Tutorial Fehler auf dem Formular Submit

Hier ist der letzte Teil des Tutorials, wo es Ihnen sagt, ein Formular zu erstellen und die Daten in der Datenbank speichern: http://www.codeigniter.com/user_guide/tutorial/create_news_items.html

Meine URL für das Formular ist http://localhost/ci/index.php/news/create

aber dann, wenn ich die angeklickt Submit-Button, wird die URL http://localhost/ci/index.php/news/localhost/ci/index.php/news/create

enter image description here

seltsam, ich weiß, dass ein Problem mit der Routing-theres, aber ich weiß nicht, die spezifisch.

Hier ist meine Strecke Datei:

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

Controller:

class News extends CI_Controller{ 
public function __construct(){ 
    parent::__construct(); 
    $this->load->model('news_model'); 
    $this->load->helper('url_helper'); 
} 

public function index(){ 
    $data['news'] = $this->news_model->get_news(); 
    $data['title'] = 'News archive'; 

    $this->load->view('templates/header',$data); 
    $this->load->view('news/index',$data); 
    $this->load->view('templates/footer',$data); 
} 

public function view($slug = NULL){ 
    $data['news_item'] = $this->news_model->get_news($slug); 

    if(empty($data['news_item'])){ 
     show_404(); 
    } 

    $data['title'] = $data['news_item']['title']; 

    $this->load->view('templates/header', $data); 
    $this->load->view('news/view', $data); 
    $this->load->view('templates/footer'); 
} 

public function create(){ 
    $this->load->helper('form'); 
    $this->load->library('form_validation'); 

    $data['title'] = 'Create a news item'; 

    $this->form_validation->set_rules('title','Title','required'); 
    $this->form_validation->set_rules('text','Text','required'); 

    if($this->form_validation->run() === FALSE){ 
     $this->load->view('templates/header',$data); 
     $this->load->view('news/create'); 
     $this->load->view('templates/footer'); 
    } 
    else{ 
     $this->news_model->set_news(); 
     $this->load->view('news/success'); 
    } 
}} 

Modell:

class News_model extends CI_Model{ 
public function __construct(){ 
    $this->load->database(); 
} 

public function get_news($slug = FALSE){ 
    if($slug === FALSE){ 
     $query = $this->db->get('news'); 
     return $query->result_array(); 
    } 

    $query = $this->db->get_where('news',array('slug'=>$slug)); 
    return $query->row_array(); 
} 

public function set_news(){ 
    $this->load->helper('url'); 

    $slug = url_title($this->input->post('title'),'dash',TRUE); 

    $data = array(
     'title' => $this->input->post('title'), 
     'slug' => $slug, 
     'text' => $this->input->post('text') 
    ); 

    return $this->db->insert('news',$data); 
}} 

Form:

enter image description here

+0

'

' tag fehlt. Prüfen Sie. –

+0

bitte laden Sie die Seite neu, ich habe das Snippet in Bild geändert .. danke – flix

+0

Versuchen Sie 'form_open ('news/create');' zu 'form_open (base_url ('news/create'));'. –

Antwort

0

Lösung:

  1. offene Anwendung \ config \ config.php
  2. Look für $ config [ 'base_url']
  3. setzen Sie ihn auf $ config [ 'base_url'] = '';
Verwandte Themen