问题标签 [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_edit
- 管理员视图
- 管理员删除
无前缀动作
- 登录
- 登出
- 看法
- 添加
- 编辑
应该允许管理员访问所有以管理员为前缀的操作以及登录和注销,而工作人员和捐助者应该只能访问后者 5. 另请注意,所有用户都使用相同的登录表单。
在我的 AppControlles 组件中,我有以下内容:
但是,在我的登录操作中,我检查用户角色以相应地更改 loginRedirect:
问题 1 现在,如果具有捐赠者角色的当前用户登录并尝试访问,localhost/sitename/admin/users/add
他将被重定向到admin/donors
而不是仅/donors
. 那么我怎样才能删除管理员前缀呢?
问题 2 我也不完全理解 hwo $this->Auth->allow(), works.. 如果在我的捐助者控制器中我想根据角色控制对控制器操作的访问,我该怎么做?例如,如果我的捐助者控制器中有“删除”操作,我将如何允许工作人员用户同时拒绝捐助者用户访问删除操作。我相信 beforeFilter 是解决方案,但找不到怎么做!任何指针?谢谢
.htaccess - CakePHP 没有正确重定向
我刚刚完成了入门教程 ( http://book.cakephp.org/2.0/en/getting-started.html ) 并将我的文件放在 Apache 服务器上,该服务器将 Drupal projet 作为根 URL。
Cakephp 的索引页面加载正常,但是当我单击任何项目时,将我的根 url 更改为类似root/posts/view/2
的,它显示 Drupal 的页面未找到错误。
我想这可能是一个重写问题。我的 CakePHP 目录有一个 .htaccess 文件,其中包含:
我的启用 apache2 站点的 conf 以:
当我从以下位置更改索引操作路线时:
至 :
我遇到了与上述相同的错误。
有什么线索吗?
cakephp-2.0 - CakePHP 路由到控制器和页面
是否可以在同一网址中识别控制器和页面名称
Router::connect('/:controller/');
Router::connect('/:pagename/', array('controller' => 'home','action'=>'index'));
www.example.com/controller 以便控制器转到 :controller/index
www.example.com/pagename 以便页面转到 home/index
php - 当参数未通过 url 传递给控制器时
在 cakephp 中,我有一个控制器,它应该接收一个参数,然后调用模型来使用数据库以在视图中显示结果。很常见的 mvc 方法。
将控制器想象为应该与特定用户关联的“插入新帖子”。
所以,网址应该是:http://mysite/inspost/(user_id).
问题是,当 URL 像http://mysite/inspost/
即使未指定 user_id,它也会显示相同的视图并插入新帖子。
我该如何控制这个?
php - CakePHP 为带有 slug 和日期的帖子创建路由
现在我的 CakePHP 博客有这些路线
我想让我的帖子 URL 包含日期
如何设置我的路线/动作以适应这种情况?当我创建这样的链接时,我可以拥有它吗
它会自动添加日期参数吗?
更新
我让它工作了
我创建了这条路线
我没有为此创建自己的助手,而是覆盖了 AppHelper 中的 url 方法
然后我创建链接
cakephp - 如何在不更改 CakePHP 中的 HtmlHelper#link(...) 调用的情况下重新定义 URL 生成?
我有一个带有许多内部链接的 CakePHP 网站,这些链接是使用以下内容构建的HtmlHelper
:
/app/View/MyController/myaction.ctp
它适用于默认路由:
/app/Config/routes.php
生成的链接如下所示:/mycontroller/myaction/$profileId/$languageId
.
现在我想为网站的一部分使用搜索引擎友好的 URL(使用配置文件名称和 ISO-639-1 语言代码而不是 ID)并添加了一个新路由:
/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”中我没有对身份验证进行任何控制,所以也许我正在做其他错误。有人可以帮助我吗?
谢谢!
cakephp - CakePHP 中的重定向路由
我正在尝试设置 CakePHP 重定向路由,但我被卡住了。到目前为止,阅读这本书并没有帮助。
我想将 URL 重定向/mysite/xyz
到/mysite/en/xyz
(包括语言参数)
最终 URL 的路由/mysite/en/xyz
, 是这样设置的,并且工作正常:
重定向路由设置如下:
但是,如果我现在访问 URL /mysite/xyz
,我将被重定向到/mysite/mysite/en/xyz/en
- 请注意参数的重复。
如何正确设置?
php - Cakephp 路由控制器别名
我正在尝试与这个站点一样,stackoverflow,对他们的 URL 做同样的事情。
CakePHP 的工作方式如下:网站/控制器/动作/
我想配置路由来实现这一点:
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
通知here它不会改变前缀。我不想失去 CakePHP 的路由功能,但仍然想克服这个问题。我提到了一些以前回答的问题,但对我没有用。请帮忙。