2012-02-24 7 views
1

Kohana 3ルーティングで定義されたルールがありますが、IDパラメータがメソッドに渡されていません。Kohana 3ルーティングのIDパラメータがNULLです

私はbootstrap.phpのファイルでこれを持っている:

Route::set('default', '(<controller>(/<action>(/<id>)))') 
->defaults(array(
    'controller' => 'home', 
    'action'  => 'index', 
)); 

とコントローラ

public function action_home($id=NULL) 
{ 
    echo $id; 
} 

しかし、次のリンクの例では、IDは、通常はNULLです:

http://example.com/index/123

IDは123である必要がありますが、そうではありません。どうしてか分かりません。

答えて

5

ええ、Ko3のルートはばかげています。

はK03がパラメータとしてVARSを割り当てますので、ヌルそれます$ id =を削除してください:

public function action_home() 
{ 
    echo $this->request->param('id'); 
} 

ことができますかどうかを確認します。彼らはKohanaのから削除された

+0

ありがとう、私はこのメソッドが動作していることを知っています。しかし顧客は私がstandartコナナルーティングを使用したいと思う。 –

+0

これは標準的なコナルーティングです。 URI処理は、あなたが考えているものかもしれません。私が言っているのは、コントローラの引数に期待されるパラメータを定義する必要はないということだけです。それらは要求オブジェクトを通過します。これは無限に拡張性の高いソリューションです。 –

1

、参照してください。http://dev.kohanaframework.org/issues/4357

zombor述べたように:

彼らはただKohanaのが設計されてどのように適合しません。最初は3.0に含まれていてはなりません。

また、すべてのルートをデフォルトのルートで処理することは想定されていません。必要な数だけ定義する必要があります。

+0

ありがとうございます。あなたは私をたくさん助けました。 –