2016-04-15 12 views
1

私のcakephpのバージョンは3.2です。私はルータのCMSページを管理したい。上記のすべてのURLがhttp://wwwsitename.com/pages/cms_page/seo-urlCakePHPのルートページのルータ管理

SEO-URLつのアクションを呼び出している

http://www.sitename.com/about-us 
http://www.sitename.com/contact-us 
http://www.siteame.com/privacy-policy 
http://www.sitename.com/faq etc. etc. 

'接触-たち'、 'プライバシーポリシー'、「、 'について、私たち' = - のような私のCMSページの意志が見えますよくある質問」など。デフォルトのルートURLはここ

私のルータが既に呼んでいる -

$routes->connect('/', ['controller' => 'Users', 'action' => 'index']); 

はどのようにルータにCMSページの管理を教えて?

EDIT

表:ページ

+----+-----------+------------+-------------+ 
| id | title  | seo  | description | 
+----+-----------+------------+-------------+ 
| 1 | About Us | about-us | content here| 
| 2 | Contact Us| contact-us | content here| 
+----+-----------+------------+-------------+ 

サイト管理者は、その後、私のURLが検索されますaboutusに私のabout-us SEOの列名を変更する場合は - http://www.sitename.com/aboutus

+0

これはあなたに役立つかもしれませんhttp://stackoverflow.com/questions/6213883/cakephp-routing-home-slug-as-url – skywalker

答えて

1

がcms_pageアクションですページコントローラのうち、アプリケーション全体でアクセスされる唯一のアクション?

そうしようとした場合:あなたがページ上の他のページを持っていることを説明していない

Router::connect('/*', ['controller' => 'Pages', 'action' => 'cms_page']); 

編集

。これを念頭に置いてにはがあり、それぞれのルートを別々に定義しています。

試してみてください。

Router::connect('/about-us', ['controller'=>'Users', 'action' => 'index', 'about-us']); 
Router::connect('/contact-us', ['controller'=>'Users', 'action' => 'index','contact-us']); 
Router::connect('/privacy-policy', ['controller'=>'Users', 'action' => 'index','privacy-policy']); 
Router::connect('/faq', ['controller'=>'Users', 'action' => 'index','faq']); 

http://book.cakephp.org/3.0/en/development/routing.html#routes-configuration

をテストし、私のためにうまく働きました。

+0

その作業中ですが他のページがこれに影響を受けています。 – Shaddy

+0

あなたのアプリケーションに他のコントローラがあるとは言いませんでした。あなたがこれを門の外で言及したのであれば、私はすぐにあなたにもっと良い答えを与えることができました。私の編集を見てください。歓声 –

+0

@JasonJoslin私はあなたの編集された答えを見ました。しかし、あなたは 'about-us'、' contact-us'などのルートで静的を追加しました。しかし、サイト管理者が 'about-us'を' aboutus'に変更すれば、私の現在のページは 'about-us'です。だから私は約ページでnullデータを取得しています。 – Chinmay235

関連する問題