由於kohana框架在國內的用戶較少,而且新版與kohana2.X差別太大,加之kohana3資料多為英文.讓很多對kohana感興趣,想學的同學們只能望K興歎.由於公司 最近轉向kohana3開發(kohana3.1.0穩定版),所以我趁次機會,認真看了下官方的資料.獲益良多,借個人小站,分享給大家.今天呢,就說下kohana的路由設置.
再次說下,我用的是ko3.1.0與ko3有差別的.
其實呢,kohana3的路由設置,很簡單.打開application文件下的bootstrap.php,找到Route::set,會看如下的默認路由:
復制代碼 代碼如下:Route::set('default', '((/(/)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
這個呢,就是默認的路由了,可以看出它的組成是這樣子的.名稱,控制器,動作,參數.特別要指出的是,每個路由必須指定默認的控制和動作,一般是index.
如何創建自定義的路由呢,其實和默認的寫法是一樣只不過,加入自己要加的東西.例如有一個產品列表頁,需要獲取產品類型的ID和當前頁碼.
路由可以這樣設置
復制代碼 代碼如下:
Route::set('product', 'product/((/)(/))')
->defaults(array(
'controller' => 'product',
'action' => 'index',
'id' =>0,
'page' =>0//有的例子這裡是NULL,但是我用了報錯.
));
這裡呢,第一個product是名稱,後面的是重點講的地方,product是控制器,/action是動作,一定要這麼寫.後面(/<>)裡面是參數.在頁面中獲取這裡參數是這樣,$id = $this->request->param('id'),這個裡面的id,與路由裡面的id名稱必須相同.
需要的同學可參照這個例子去改,應該可以了.未了,強烈推薦大家看2個站的東西
1.http://kohanaframework.org/3.1/guide(官方的在線文檔)
2.http://kerkness.ca/wiki/doku.php(非官方的維基,例子比官方的好,但是版本3.0的)
可以對比著看,相信大家一定可以玩轉kohana,加油!!
not found MODPATH\\database\\classes\\kohana\\db.php [ 63 ] 58 * @param請寫明你在流程中是如何調用database或ORM的,也可能是你調用的方法不對。
平常我也不發言。今天寫個代碼給你看看:簡單的Model層
product.class.php:
<?php
class product{
public function getAllProducts(){
$q="SELECT * FROM Product";
$r=$db->query($q);
$proArr=array();
while($row=db->fetchAssoc($r)){
$proArr[]=$row;
}
return $proArr;
}
}
?>
視圖和控制層:
getallproducts.php:
<?php
$product=new product();
$ps=$product->getAllProducts();
foreach($ps as $p){
//輸出數據庫中查出來的
echo $p['name'];
}
我一般就是這樣寫的 PHP說多了,就是大部分對數組進行編程 ,
大部分都是在頁面裡輸出SQL語句,嵌套HTML,顯得頁面臃腫,不易維護和擴展
這樣分層以後修改比較簡單