問題タブ [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.

0 投票する
2 に答える
3635 参照

php - CakePHP - ロールの承認とルーティング

私はこれを行う方法について完全に完全に迷っています。私には、管理者、スタッフ、寄付者の 3 つの役割があります。私の問題は、許可されていないユーザーが URL からアクションにアクセスしようとすると、アクセス許可と適切なリダイレクトで (とにかく私にとって) 本当に混乱することです。

私の UsersController には、次のアクションがあります

  1. admin_index
  2. admin_add
  3. admin_edit
  4. admin_view
  5. admin_delete

接頭辞のないアクション

  1. ログインする
  2. ログアウト
  3. 見る
  4. 追加
  5. 編集

管理者は、ログインとログアウトだけでなく、管理者がプレフィックスされたすべてのアクションにアクセスできる必要がありますが、スタッフと寄付者は後者の 5 にのみアクセスできる必要があります。また、すべてのユーザーが同じログイン フォームを使用していることにも注意してください。

私の AppControlles のコンポーネントには、次のものがあります。

ただし、私のログイン アクションでは、ユーザー ロールが loginRedirect を適宜変更するかどうかを確認します。

質問 1 現在、ドナーの役割を持つ現在のユーザーがログインし、アクセスしようとすると、単に ではなく にlocalhost/sitename/admin/users/addリダイレクトされます。では、管理者のプレフィックスを削除するにはどうすればよいですか?admin/donors/donors

質問 2 また、$this->Auth->allow() の仕組みが完全には理解できません。donersController で、役割に応じてコントローラ アクションへのアクセスを制御したい場合、どうすればよいですか? したがって、たとえば、donorsController に「削除」アクションがある場合、ドナー ユーザーが削除アクションにアクセスすることを拒否しながら、スタッフ ユーザーを許可するにはどうすればよいでしょうか。beforeFilter が解決策だと思いますが、その方法が見つかりません! ポインタはありますか?ありがとう

0 投票する
1 に答える
955 参照

.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 ?

0 投票する
2 に答える
87 参照

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 に移動するようにします

0 投票する
1 に答える
55 参照

php - パラメータがurl経由でコントローラに渡されない場合

Cakephp には、パラメーターを受け取り、model を呼び出してデータベースを操作し、結果をビューに表示するコントローラーがあります。かなり一般的な mvc アプローチ。

コントローラーを、特定のユーザーに関連付ける必要がある「新しい投稿を挿入する」と想像してください。

したがって、URL は次のようになります。http://mysite/inspost/(user_id).

問題は、URLが次のような場合ですhttp://mysite/inspost/

同じビューが表示され、user_id が指定されていない場合でも新しい投稿が挿入されます。

どうすればこれを制御できますか?

0 投票する
1 に答える
377 参照

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(...)

0 投票する
1 に答える
659 参照

php - CakePHP アクセスが拒否されました

CakePHP には次の構成があります。

うまくいかない理由がいまいちわかりません!

「view_services.ctp」が見えません。サーバーは「access_denied.ctp」ページにリダイレクトしますが、「view_services.ctp」では認証に関する制御を行っていないため、他のエラーが発生している可能性があります。誰かが私を助けることができますか?

ありがとう!

0 投票する
1 に答える
504 参照

php - Cakephp ルーティング コントローラ エイリアス

私は、このサイト、stackoverflow と同じことを URL で実行しようとしています。

CakePHP は次のように動作します: website/controller/action/

これを実現するためにルーティングを構成したい:

myWebSite.com/questions/(question_id )/ (質問) /

: myWebSite.com/questions/12874722/ cakephp -routing-controller-alias /

URL のこの太字の部分を行う方法がわかりませんでした。

0 投票する
1 に答える
117 参照

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/actionHtmlヘルパーのリンクメソッドの助けを借りて達成しようとしています-

しかし、これで私はcake_proj/prefix1/controller2/prefix_actionここで通知としてリンクを取得しています。プレフィックスは変更されません。私は CakePHP のルーティング機能を失いたくないのですが、それでもこの問題を乗り越えたいと思っています。以前に回答した質問のいくつかを参照しましたが、うまくいきませんでした。助けてください。