2010-12-12 19 views
0

こんにちは 私はhttp://www.ibm.com/developerworks/web/library/wa-codeigniter/CodeIgniterのMVCサンプルコード

で与えCodeigniterrのためのスタートアップガイド以下の午前私は正面図を作成するための指示に従い、フォームの送信を処理するためにコントローラを追加しました。理想的には、フォームを送信すると、モデルクラスをロードしてデータベースの詳細を格納する関数を実行するだけで、ブラウザのモデルのコードを出力するだけです。私はWWW-データ 3.メイク許可WWW

の全体のために777しかし、コードにすべてのPHPコードを作る1. ファイルの実行可能 2.変更の所有権をこれらの事をやって試してみました

**Code of view (Welcome.php)** 
---------------- 
<?php 

class Welcome extends Controller { 

function Welcome() 
{ 
    parent::Controller(); 
} 

function index() 
{ 

    $this->load->helper('form'); 
    $data['title'] = "Welcome to our Site"; 
    $data['headline'] = "Welcome!"; 
    $data['include'] = 'home'; 
    $this->load->vars($data); 
    $this->load->view('template'); 

} 
function contactus(){ 
    $this->load->helper('url'); 
    $this->load->model('mcontacts','',TRUE); 
    $this->mcontacts->addContact(); 
    redirect('welcome/thankyou','refresh'); 
} 


function thankyou(){ 
    $data['title'] = "Thank You!"; 
    $data['headline'] = "Thanks!"; 
    $data['include'] = 'thanks'; 
    $this->load->vars($data); 
    $this->load->view('template'); 
} 



} 

/* End of file welcome.php */ 
/* Location: ./system/application/controllers/welcome.php */ 

**Code of Model** 
-------------- 
class mcontacts extends Model{ 

    function mcontacts(){ 
    parent::Model(); 
    } 
} 

function addContact(){ 
    $now = date("Y-m-d H:i:s"); 
    $data = array( 
    'name' => $this->input->xss_clean($this->input->post('name')), 
    'email' => $this->input->xss_clean($this->input->post('email')), 
    'notes' => $this->input->xss_clean($this->input->post('notes')), 
    'ipaddress' => $this->input->ip_address(), 
    'stamp' => $now 
); 

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

**OUTPUT after clicking submit** 
----------------------------- 
class mcontacts extends Model{ function mcontacts(){ parent::Model(); } } function addContact(){ $now = date("Y-m-d H:i:s"); $data = array('name' => $this->input->xss_clean($this->input->post('name')), 'email' => $this->input->xss_clean($this->input->post('email')), 'notes' => $this->input->xss_clean($this->input->post('notes')), 'ipaddress' => $this->input->ip_address(), 'stamp' => $now); $this->db->insert('contacts', $data); } 

モデルのモデルはちょうど印刷されているようです...

+1

あなたはそれが少し読みやすくするためにあなたの質問を再フォーマットしてみてくださいもらえますか? – musoNic80

答えて

0

モデルのコンストラクタメソッド(mcontacts())の後に余分な中カッコがありますか?これは問題を引き起こすでしょう!また、コードは一般的にOKですが、おそらくあなたが示したものよりも複雑なことを行う場合は、フレームワークを使用するより良い方法があります。たとえば、オートローディング、フォームの検証などです。ユーザーガイドの読解をお勧めしますか?それは非常に徹底的かつ明確で、多くのお手伝いをする必要があります。あなたを助けるかもしれないhttp://codeigniter.com/user_guide/index.html

1

ただ、いくつかのマイナーなポイント:あなたのコントローラで

  1. 、あなたがそのページを呼び出すしたい方法でインデックス方式を指します。たとえば、

    function index() 
    { 
        $this->welcome(); 
    } 
    

    これは、他の誰かがあなたのコードを後で作業する場合には、物事をきれいに保つのに役立ちます。私は歓迎を選んだのは、それがあなたのコントローラクラスの名前であり、それは物事を単純に保つためです。お使いのモデルで

  2. 、この:

    class mcontacts extends Model{ 
    

    は次のようになります。

    class Mcontacts extends Model{ 
    

    は、これらのクラス名を大文字に!それは、あなたが説明するトラブルを与える可能性があります。

    は、この詳細はこちらをご覧ください:http://codeigniter.com/user_guide/general/models.html

  3. あなたのクラスやメソッド名にキャメルケースを使用しないでください。これはあなたのコードが失敗する原因となるものではありませんが、一般に認められている方法です。 CodeIgniterのPHPのスタイルがこのについての詳細は、ガイドを参照してください:http://codeigniter.com/user_guide/general/styleguide.html

関連する問題