私はルーティングに頭を悩ませようとしてきました。そのため、いじくり回すための小さなアプリケーションを構築しましたが、問題に遭遇することができました。
テスト全体の目標は、URL「hostname / content / index / add」を非表示にして、「hostname / wms / content/add」のようなユーザーにとってより理解しやすいURLに変換することでした。
しかし、奇妙な理由で、$ this-> url()メソッドを使用してリダイレクトできません。しかし、どういうわけか、somelinkのような通常のリンクは機能します。
application.iniにいくつかのルートを作成して、どのように機能するかをテストしました。それは空想ではありません...
resources.router.routes.contentroute.route = "/wms/content"
resources.router.routes.contentroute.defaults.module = content
resources.router.routes.contentroute.defaults.controller = index
resources.router.routes.contentroute.defaults.action = index
resources.router.routes.vacaturesroute.route = "/wms/vacatures"
resources.router.routes.vacaturesroute.defaults.module = vacatures
resources.router.routes.vacaturesroute.defaults.controller = index
resources.router.routes.vacaturesroute.defaults.action = index
したがって、hostname / wms / contentと入力すると、コンテンツモジュールのIndexControllerとそのIndexActionにリダイレクトされます。これは、このようなコンテンツモジュールを指すビュー内のすべてのリンクで正常に機能します
<a href='wms/content/'> link </a>
ただし、そのページのhostname / wms/contentでのIndexControllerの特定のアクションに実際にリダイレクトする3つのリンクでは機能しません。
<a href="<?php echo $this->url(array('controller'=>'index','action'=>'add'));?>">Add new content</a>
IndexControllerの追加アクションに実際にリダイレクトする代わりに、hostname / wms / contentにリダイレクトされますが、これは私がアクセスしているページです。
なぜこれが起こっているのか、そしておそらくこれを解決する方法を知っている人はいますか?それとも私はこれに完全に間違った方法でアプローチしていますか?