問題タブ [cakephp-routing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - CakePHP - ロールの承認とルーティング
私はこれを行う方法について完全に完全に迷っています。私には、管理者、スタッフ、寄付者の 3 つの役割があります。私の問題は、許可されていないユーザーが URL からアクションにアクセスしようとすると、アクセス許可と適切なリダイレクトで (とにかく私にとって) 本当に混乱することです。
私の UsersController には、次のアクションがあります
- admin_index
- admin_add
- admin_edit
- admin_view
- admin_delete
接頭辞のないアクション
- ログインする
- ログアウト
- 見る
- 追加
- 編集
管理者は、ログインとログアウトだけでなく、管理者がプレフィックスされたすべてのアクションにアクセスできる必要がありますが、スタッフと寄付者は後者の 5 にのみアクセスできる必要があります。また、すべてのユーザーが同じログイン フォームを使用していることにも注意してください。
私の AppControlles のコンポーネントには、次のものがあります。
ただし、私のログイン アクションでは、ユーザー ロールが loginRedirect を適宜変更するかどうかを確認します。
質問 1 現在、ドナーの役割を持つ現在のユーザーがログインし、アクセスしようとすると、単に ではなく にlocalhost/sitename/admin/users/add
リダイレクトされます。では、管理者のプレフィックスを削除するにはどうすればよいですか?admin/donors
/donors
質問 2 また、$this->Auth->allow() の仕組みが完全には理解できません。donersController で、役割に応じてコントローラ アクションへのアクセスを制御したい場合、どうすればよいですか? したがって、たとえば、donorsController に「削除」アクションがある場合、ドナー ユーザーが削除アクションにアクセスすることを拒否しながら、スタッフ ユーザーを許可するにはどうすればよいでしょうか。beforeFilter が解決策だと思いますが、その方法が見つかりません! ポインタはありますか?ありがとう
.htaccess - CakePHP doesn't redirect properly
I've just finished the Getting started tutorial (http://book.cakephp.org/2.0/en/getting-started.html) and put my files on an Apache server, that has Drupal projet as root URL.
The Cakephp's index page loads fine, but when I click on any item, changing my root url to something like root/posts/view/2
, it displays Drupal's page not found error.
I guess it may be a rewrite problem. My CakePHP directory has an .htaccess file containing :
And my apache2 sites-enabled conf ends with :
When I change the index action route from :
to :
I've got the same error as described above.
Any clue ?
cakephp-2.0 - コントローラーとページへの CakePHP ルーティング
同じ URL でコントローラーとページ名を識別することは可能ですか?
Router::connect('/:controller/');
Router::connect('/:pagename/', array('controller' => 'home','action'=>'index'));
コントローラが :controller/index に移動するように www.example.com/controller
www.example.com/pagename で、ページが home/index に移動するようにします
php - パラメータがurl経由でコントローラに渡されない場合
Cakephp には、パラメーターを受け取り、model を呼び出してデータベースを操作し、結果をビューに表示するコントローラーがあります。かなり一般的な mvc アプローチ。
コントローラーを、特定のユーザーに関連付ける必要がある「新しい投稿を挿入する」と想像してください。
したがって、URL は次のようになります。http://mysite/inspost/(user_id).
問題は、URLが次のような場合ですhttp://mysite/inspost/
同じビューが表示され、user_id が指定されていない場合でも新しい投稿が挿入されます。
どうすればこれを制御できますか?
cakephp - CakePHP で HtmlHelper#link(...) 呼び出しを変更せずに URL 生成を再定義する方法は?
私は多くの内部リンクを持つCakePHP Webサイトを持っていますHtmlHelper
.
/app/View/MyController/myaction.ctp
デフォルトルートで問題なく動作します:
/app/Config/routes.php
生成されたリンクは次のようになります/mycontroller/myaction/$profileId/$languageId
。
ここで、Web サイトの一部に検索エンジンに適した URL (ID の代わりにプロファイル名と ISO-639-1 言語コードを使用) を使用し、新しいルートを追加したいと考えています。
/app/Config/routes.php
また、正常に動作し、着信 URI など/producer/en/TestName.html
は正しく解釈されます。
しかし、HtmlHelper
はまだ のような古い URI を生成しています/mycontroller/myaction/1/1
。
ドキュメントには次のように書かれています。
逆ルーティングは CakePHP の機能で、すべてのコードを変更することなく URL 構造を簡単に変更できるようにするために使用されます。ルーティング配列を使用して URL を定義すると、後でルートを構成でき、生成された URL が自動的に更新されます。
はルーティングHtmlHelper
配列を入力として取得します。つまり、逆ルーティングを使用しています。
うまくいかないのはなぜですか?(呼び出しHtmlHelper
を変更せずに) 新しい URL を生成する方法は?HtmlHelper#link(...)
php - CakePHP アクセスが拒否されました
CakePHP には次の構成があります。
うまくいかない理由がいまいちわかりません!
「view_services.ctp」が見えません。サーバーは「access_denied.ctp」ページにリダイレクトしますが、「view_services.ctp」では認証に関する制御を行っていないため、他のエラーが発生している可能性があります。誰かが私を助けることができますか?
ありがとう!
php - Cakephp ルーティング コントローラ エイリアス
私は、このサイト、stackoverflow と同じことを URL で実行しようとしています。
CakePHP は次のように動作します: website/controller/action/
これを実現するためにルーティングを構成したい:
myWebSite.com/questions/(question_id )/ (質問) /
例: myWebSite.com/questions/12874722/ cakephp -routing-controller-alias /
URL のこの太字の部分を行う方法がわかりませんでした。
php - Cakephp:2.5.4 の以前に接頭辞が付けられたページの別の接頭辞とのリンク
私はcake_proj/prefix2/controller2/action
このページのようにリンクを達成しようとしていますcake-proj/
が'prefix1' => true
、私の中でroutes.php
はこれがhome
ページであるため、最終的にそのリンクはcake_proj/prefix1/controller1/action
. だから今、私はcake_proj/prefix2/controller2/action
Htmlヘルパーのリンクメソッドの助けを借りて達成しようとしています-
しかし、これで私はcake_proj/prefix1/controller2/prefix_action
ここで通知としてリンクを取得しています。プレフィックスは変更されません。私は CakePHP のルーティング機能を失いたくないのですが、それでもこの問題を乗り越えたいと思っています。以前に回答した質問のいくつかを参照しましたが、うまくいきませんでした。助けてください。