-1

Web サイトを作成していて、データベースに接続しようとしていますが、実際に問題が見つかりません。必要なのは、データベース「bcjobs」からすべての「job_desc」を取得し、ユーザーが「job_desc」をクリックしてジョブの詳細を表示できるようにすることだけです。これが私のコードです

モデル:

<?php

class Jobs_model extends CI_Model {

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


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

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

}

?>

コントローラ:

<?php

class Jobs extends CI_Controller {

    public function __contruct() {
        parent::__construct();
        $this->load->model('jobs_model');
    }

    public function index() {
        $data['job'] = $this->jobs_model->get_job();
        $data['title'] = 'Job List';

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

    public function view($slug) {
        $data['job_item'] = $this->jobs_model->get_job();

        if (empty($data['job_item'])) {
            echo "no data";
        }

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

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

}

?>

アプリケーション/ビュー/ジョブリスト/index.php:

<?php foreach ($job as $job_item): ?>

    <h2><?php echo $job_item['title'] ?></h2>
    <div id="main">
        <?php echo $job_item['text'] ?>
    </div>
    <p><a href="joblist/<?php echo $job_item['slug'] ?>">View article</a></p>

<?php endforeach ?>

アプリケーション/ビュー/ジョブリスト/view.php:

<?php
echo '<h2>'.$job_item['title'].'</h2>';
echo $job_item['text'];

ルート:

$route['jobs/(:any)'] = 'joblist/$1';
$route['jobs'] = 'joblist';
$route['(:any)'] = 'pages/$1';
$route['default_controller'] = 'pages';
4

1 に答える 1

0

あなたのコメントに基づいて、ルートが間違っているようです。

CI ルートの概要を次に示します。

$route['journals'] = "blogs";

url -> localhost/index.php/journals

上記の例では、単語が最初の uri セグメントで見つかったblogsときはいつでもクラスにリダイレクトされます。CI リファレンスjournals

あなたの場合、最初のセグメントを探していますが、jobs存在しないクラスに誤ってルーティングしています (ジョブリストコントローラーについて何も投稿していないため、これを想定しています)。

したがって、2 つのオプションがあります。コントローラーの名前を変更するか、ルートを変更してください。

オプション 1: コントローラーの名前をJobsからJoblistに変更します。ルートを更新します。

$route['jobs/(:any)'] = 'joblist/view/$1';

オプション 2:

あなたのURLの場合:localhost/bcjobs_final/index.php/jobs

$route['jobs/(:any)'] = 'jobs/view/$1';
于 2013-05-29T03:56:00.950 に答える