2016-11-11 12 views
0

こんにちは、私はZendframework2を初めて使っています。コントローラー内のページネイターのアクセスID

私は4にidで、地区はコントローラのルートとid=4で で、http://new_project.localhost/districts?page=2?id=4

new_projectは私のプロジェクトの名前があるように見えるのブラウザでview\partial\paginator.phtml

<a href="<?php echo $this->url($this->route);?>?page=<?php echo $page; ?>?id=<?php echo $this->id?>"> 

に次の行を持っています私はコントローラでアクセスしたいです。

は、私が試した:

$_GET['id'];        

$this->params()->fromRoute('id'); //also 

$this->params()->fromQuery('id'); //also 

しかし、これらの作品の非。

コントローラーでこのidにどのようにアクセスしますか?

答えて

0

私は以下のような条件を置くことによって、それを解決:

if (isset($_GET['id'])) 
{ 
    // perform operation here.  
} 
0

は、あなたの要素タグを自分で構築してhrefが、あなたがすべきのようなフレームワークを使用しないでください。

のURLビューヘルパー:

// $this->url($routeName, $routeParams, $options, $reuseMatchedParams = false) 
$this->url('my/route', ['id' => $object->getId()], ['query' => ['page' => $page]]) 

コントローラプラグイン:

$this->params('id') // will take ID either from routeParameters or queryParameters. 
$this->params()->fromRoute('id') // will take the id from the routeParameters 
$this->params()->fromQuery('page') // will take the page from the route query 

だからrouteParameter IDを持つルートを持っているが、それはそのベストプラクティスをクエリの中に、あなたのクエリにもIDを持っている場合$this->params()->fromRoute('id')または$this->params()->fromQuery('id')を使用し続けるには、$this->params('id')の代わりに値がどこから来るかを常に知っておく必要があります。

paramsプラグインと同様に、2番目の引数にデフォルト値を定義することもできます($this->params()->fromQuery('page', 1)など)。ユーザーが1つも入力しなかった場合、ページは常に1になります。 2番目の引数のデフォルトはnullです。このことができます、あなたは私があなたのURLは次のようになりますだと思う

0

$_GET['bla']の使用を停止します願っています:

http://new_project.localhost/districts?page=2&id=4 
              ^
             not ? 

間違いのあなたは、パーサーは、おそらくあなたを意味正しくURLにIDを解析しない作られているのであなたが試したようにそれにアクセスすることはできません。

URL内のクエリパラメータをレンダリングする場合は、the url view helperを使用する方が良いでしょう。そのような間違いはありません。 StackOverflowでthis postを確認すると、urlビューヘルパーを使用してURLにクエリパラメータを追加する方法を参照できます。あなたのケースでは、それはこのようなものになります。

<?php 
    $href = $this->url($this->route, [], ['query' => [ 
     'page' => $page, 
     'id' => $id, 
    ]]); 
?> 
<a href="<?php echo $href ?>"> 

を今、あなたは正しいURLを取得:

パーサを意味
http://new_project.localhost/districts?page=2&id=4 

も正しくIDを解析するために管理しています。 あなたがしようとしたようにあなたは今、それをアクセスすることができるはずです。私はそれを解決し

$this->params()->fromQuery('id'); //returns your id from the url 
関連する問題