0

私はこの次のコントローラーを持っています-

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

class News extends CI_Controller {

public function __construct()   {
    parent::__construct();
    $this->load->database();     

    $catid = $this->input->post('cat');

    if(isset($catid)){
        $this->filter($catid);
    }
}

private function filter($catid){
    $sql = "select * from news_master where instr(concat(',', `Category`, ','), ', $catid ,') <> 0 ";
    echo $sql;
}

}

フォームが送信されたときに呼び出されます。フォームを送信すると、コントローラーがfilter関数を呼び出して出力し$sqlます。そして奇妙なことに、その下にデフォルトの 404 エラーメッセージが表示されます。これがスクリーンショットです。ここに画像の説明を入力

考えられる理由が理解できません。

4

2 に答える 2

1
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News extends CI_Controller {

public function __construct()   {
    parent::__construct();
    $this->load->database();     
}
public function index()
{
    $catid = $this->input->post('cat');

    if(isset($catid)){
        $this->filter($catid);
    }

}
private function filter($catid){
    $sql = "select * from news_master where instr(concat(',', `Category`, ','), ', $catid ,') <> 0 ";
    echo $sql;
}

}

コンストラクター関数から呼び出していることに気付きました。インデックス関数に含まれている必要があります。

于 2013-08-12T22:40:57.243 に答える
0

プライベート関数は codeigniter のページとして機能しません

private function filter($catid){
    $sql = "select * from news_master where instr(concat(',', `Category`, ','), ', $catid ,') <> 0 ";
    echo $sql;
}

PUBLIC に更新する必要があります

public function filter($catid){
    $sql = "select * from news_master where instr(concat(',', `Category`, ','), ', $catid ,') <> 0 ";
    echo $sql;
}
于 2013-08-12T16:21:04.523 に答える