我們從最早之前到現在我們都把所有的程式寫在ROUTER中,
但是真正在做程式撰寫的時候這樣會造成路由的效能太差,
所以我們今天會將所有的程式收容進去Controller中,
在Laravel中我們可以使用一種簡易的Rest路由模式,
在裡面它可以使用get及post的前綴字加上要使用的路由名稱去達到,
例如我們今天有一個路由Insert他要使用get的方式去驅動,
那個函數名稱就會是getInsert這樣子,
首先我們一樣將Router打開,
加入以下的路由
Route::controller('messageC', 'MessageController');
我們再到app\controllers底下新增一個MessageController,
接著打開這個檔案,
我們參照以前的程式碼將所以的程式一個一個收容近來,
整個程式碼就如以下所示,
唯一有更動的地方就是在我們的列表的地方,
主要是因為路由的方式布一樣,
所以在做新增及刪除鈕的時候需要做更動,
以下就是今天我們將學的部分。
<?php
class MessageController extends BaseController {
public function getInsert()
{
//
//引入檔案
return View::make('message',array('message' =>"" ));
}
public function postInsert()
{
//
if (Input::has('title')&&Input::has('content'))
{
$title = Input::get('title');
$content = Input::get('content');
if(DB::insert('insert into message_list (title, content) values (?, ?)', array($title, $content))){
$message="新增成功";
}else{
$message="新增失敗";
}
}elseif(Input::has('title')&&!Input::has('content')){
$title = Input::get('title');
$content = null;
$message="請輸入訊息內容";
}else{
//
$message="請輸入標題及訊息內容";
}
return View::make('message',array('message' => $message));
}
public function getEdit($id)
{
$results = DB::select('select * from message_list where id=?',array($id));
foreach($results as $result){
$title =$result->title;
$content=$result->content;
}
return View::make('message',array('title' =>$title,'content' =>$content ));
}
public function postEdit($id)
{
//
if (Input::has('title')&&Input::has('content'))
{
$title = Input::get('title');
$content = Input::get('content');
if(DB::update('update message_list set title = ?,content=? where id = ?', array($title, $content,$id))){
$message="修改成功";
}else{
$message="修改失敗";
}
}elseif(Input::has('title')&&!Input::has('content')){
$title = Input::get('title');
$content = null;
$message="請輸入訊息內容";
}else{
//
$message="請輸入標題及訊息內容";
}
return View::make('message',array('message' => $message,'title' =>$title,'content' =>$content));
}
public function getDel($id)
{
//
//引入檔案
$results = DB::delete('delete from message_list where id=?',array($id));
return Redirect::to('message/list');
}
public function getIndex()
{
//$results = DB::select('select title from message_list ');
$message_list = DB::table('message_list')->paginate(5);
return View::make('listC',array('message_list' =>$message_list ));
}
}
?>