[CodeIgniter]新聞模組(下)

繼續研究CodeIgniter,雖然剛開始覺得很麻煩,但是理解之後會覺得MVC很好用
東西壞了至少知道要去哪邊改


Controller


終於說到MVC的核心控制controller了,在controllers底下建立News.php
一樣用__construct() 初始化controller 然後載入model()方法,指定model檔案

public function index()


從news_model使用get_news()取得資料,存成陣列data
然後設定標題
並且載入views,新聞總覽頁面現在已經完成了

public function view($slug = NULL)


顯示個別的新聞的頁面,只需要在控制器增加一些條件並新增一個檢視
若沒有畫面則顯示404頁面,使用show_404()

public function create()


新增資料用的控制器
一開始載入 Form 輔助函數,以及Form Validation程式庫
程式庫檢查是否有表單被送出,以及送出的資料是否通過驗證規則
set_rules() 方法需要三個參數:輸入欄位名稱、顯示在錯誤訊息中的名稱、規則。
像是required規則表示欄位必填,其他PHP規則也可以使用

如果不成功,重新顯示所有新聞畫面
若成功則顯示success.php的view

如此就完成了核心controller的部分

Database


就...看自己的資料庫是怎麼設定的,名稱阿使用者帳號密碼阿
使用哪一個資料庫之類的
至於資料庫的建立可以參照newsSQL.sql這隻檔案,建立一個具有
id, title, slug, text 等,四個欄位的資料庫,內容自由輸入,就是你的新聞內容

routes


最後是路由,負責幫助CodeIgniter選擇讀取controller的路徑
若是不進行設定,在瀏覽網頁時需要使用完整的路徑
根目錄/檔案資料夾/index.php/news
若將default_controller 設為news,則就會直接讀取news這個controller裡面的方法
可以直接使用路徑:根目錄/檔案資料夾
來瀏覽網頁,如此在網址上更加簡潔

以上就完成了新聞模組的練習

親自做完一個CodeIgniter的練習比起看理論來得清楚
原來要進入CodeIgniter並沒有原先想的那麼困難
過程中也有遇到一些問題,在翻譯上有些地方翻得不是很通順
還是得去看原文的說明才比較明白,最後完成這個練習是非常有成就感
因為此練習涵蓋了常用的新增和讀取資料庫,並在頁面跳轉上也有練習
剩下的修改和刪除,就參照教學裡的函數說明自行做練習

留言