ホームページ > バックエンド開発 > PHPチュートリアル > PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル

PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル

WBOY
リリース: 2016-07-12 09:06:26
オリジナル
875 人が閲覧しました

PHP框架CodeIgniter入门使用(2)

本文参考 链接 介绍CodeIgniter如何将Controller连接Model层(操作数据库),实现读取新闻条目功能。通过本文串通Controller和Model以及View之间如何协同,控制。

一,创建Model

有一点需要明确,关于数据库的操作在model层,而非Controller层,Controller只负责业务控制逻辑,从model里取数据然后送给view。phpmyadmin里:

 

CREATE TABLE news (
    id int(11) NOT NULL AUTO_INCREMENT,
    title varchar(128) NOT NULL,
    slug varchar(128) NOT NULL,
    text text NOT NULL,
    PRIMARY KEY (id),
    KEY slug (slug)
);<php codeigniter>
新建个表。注意text类型的选utf8编码,然后随便插入两条数据。
<p> <php codeigniter>
<p>在models文件夹下新建News_model:<php codeigniter>
<p> <php codeigniter>
<pre class="code">
 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();
    }
}<php codeigniter>
注意上面result_array()是返回查询到所有的结果,row_array()是返回查询的当前那条结果。关于数据库的部分可以参考 链接
<p> <php codeigniter>
<h1>二新建Controller<php codeigniter>
<p>News.php<php codeigniter>
<p> <php codeigniter>
<pre class="code">
 load->model(news_model);
        $this->load->helper('url_helper');
    }

    PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル**
     * 显示所有新闻
     *PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル
    public function index(){
        $data['news'] = $this->news_model->get_news();
        $data['title'] = 'News archive';
        $this->load->view('templatesPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルheader', $data);
        $this->load->view('newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルindex', $data);
        $this->load->view('templatesPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルfooter');
    }

    PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル**
     * 显示某一个slug的新闻
     * @param null $slug
     *PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル
    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('templatesPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルheader', $data);
        $this->load->view('newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルview', $data);
        $this->load->view('templatesPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルfooter');
    }

}<php codeigniter>
注意:
<p> <php codeigniter>
<p>1,Controller如何加载Model?<php codeigniter>
<p>在News的构造函数里通过load->model('')里将model目录下对应名字的model加载进来,然后再使用时通过$this->news_model进行调用。<php codeigniter>
<p>2,Model的名字是不区分大小写的,即真正的model可以大写,在load的时候可以写成小写。<php codeigniter>
<p>3,Controller如何跟view层发生关系?<php codeigniter>
<p>通过$this->load->view('')加载view文件夹下的文件,传递一个array。在Controller里的array的key,在view下就是对应的变量名字。关于传递数据这块可以参考 CI的模版解析类部分。<php codeigniter>
<p>4,通过代码可以看到,News这个控制器加载了viewPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルnews文件夹下的index.php 和view.php<php codeigniter>
<h1>三,新建index.php<php codeigniter>
<p> <php codeigniter>
<pre class="code">
<php codeigniter>
<h2> <php codeigniter>
 
<h3> <php codeigniter>
<div class="main"> <php codeigniter>
<p>>View article<php codeigniter>
 注意:此处用了site_url设置超链接,用意是地址栏里输入newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルslug能直接跳转到newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルviewPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルslug,因此要设置路由。
<p> <php codeigniter>
<p> <php codeigniter>
<p>view.php<php codeigniter>
<p> <php codeigniter>
<pre class="code">
 '.$news_item['title'].'';
echo $news_item['text'];
<php codeigniter>
<brphp codeigniter>
<h1>四,修改routes.php<php codeigniter>
<p> <php codeigniter>
<p>在原来基础上,增加以下两句:<php codeigniter>
<p> <php codeigniter>
<pre class="code">
$route['news'] = 'news';
$route['newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル(:any)'] = 'newsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルviewPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル$1';<php codeigniter>
<brphp codeigniter>
<p> <php codeigniter>
<h1>五,配置数据库<php codeigniter>
<p>在database.php里配置下数据库相关信息。<php codeigniter>
<p>经过以上5步,一切ok。<php codeigniter>
<p>浏览器输入:http:PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルlocalhostPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル~yanziPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルCodeIgniterPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルindex.phpPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルnews<php codeigniter>
<p><img alt="PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル" src="http:PHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABwww.bkjia.comPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABuploadsPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABallimgPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB151029PHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB041T0G52-0.png" php codeigniter><php codeigniter>
<p> <php codeigniter>
<p>点击超链接后http:PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルlocalhostPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル~yanziPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルCodeIgniterPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルindex.phpPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルnewsPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルslug1111 转到以下:<php codeigniter>
<p><img alt="PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル" src="http:PHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABwww.bkjia.comPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABuploadsPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%ABallimgPHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB151029PHP%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%20CodeIgniter%20%E5%85%A5%E9%96%80%20(2)_PHP%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB041T04Q3-1.png" php codeigniter><php codeigniter>
<p> <php codeigniter>
<p><brphp codeigniter>
 <php codeigniter>
<p> <php codeigniter>
<php codeigniter>
<p align="left"></p><div style="display:none;"><span id="url" itemprop="url">http:PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルwww.bkjia.comPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHPjcPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル1065223.html<php codeigniter><span id="indexUrl" itemprop="indexUrl">www.bkjia.com<php codeigniter><span id="isOriginal" itemprop="isOriginal">true<php codeigniter><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http:PHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルwww.bkjia.comPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアルPHPjcPHP フレームワーク CodeIgniter 入門 (2)_PHP チュートリアル1065223.html<php codeigniter><span id="genre" itemprop="genre">TechArticle<php codeigniter><span id="description" itemprop="description">PHP框架CodeIgniter入门使用(2) 本文参考 链接 介绍CodeIgniter如何将Controller连接Model层(操作数据库),实现读取新闻条目功能。通过本文串通...<php codeigniter><php codeigniter><php codeigniter><php codeigniter>
<div class="art_confoot"><php codeigniter>
</php></div></php></php></php></php></span></php></span></php></span></php></span></php></span></php></span></div></php></php></p></php></brphp></p></php></p></php></p></php></p></php></p></php></p></php></p></php></p></php></p></php>
</h1></php></p></brphp></php>
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート