ルーティングの設定でroutes.phpをさわってみました。
<掲示板の例>
app/classes/controller/bbs.php
class Controller_Bbs extends Controller_Template
{
// 掲示板一覧
public function action_index() { }
}
app/classes/controller/bbs/article.php
class Controller_Bbs_Article extends Controller_Template
{
// 記事一覧
public function action_index($bbs_id = null) { }
// 記事書き込み
public function action_post($bbs_id = null) { }
}
まず掲示板一覧のアドレス
http://localhost/fuelphp/bbs/
これはいい。
けど、記事一覧のアドレス
http://localhost/fuelphp/bbs/article/<bbs_id>
掲示板のIDを渡すようにしたいけどなんか格好わるい。。。
掲示板のIDというより記事のIDに見えるし。
さらに記事投稿のアドレス
http://localhost/fuelphp/bbs/article/post/<bbs_id>
変だ。
毎回、$bbs_idをチェックするのも面倒だし。
そこでapp/config/routes.phpに以下を追加
'bbs/:bbs_id/article(/:any)?' => 'bbs/article$2',app/classes/controller/bbs/article.php
class Controller_Bbs_Article extends Controller_Template
{
protected $bbs_id = null;
public function before()
{
parent::before();
$this->bbs_id = $this->param('bbs_id');
}
// 記事一覧
public function action_index() { }
// 記事書き込み
public function action_post() { }
}
これで、記事一覧のアドレス
http://localhost/fuelphp/bbs/<bbs_id>/article/
記事投稿のアドレス
http://localhost/fuelphp/bbs/<bbs_id>/article/post/
コードもURLも最初に比べるとすっきりしたかな。
0 件のコメント:
コメントを投稿