问题标签 [cakephp-2.4]

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 投票
1 回答
447 浏览

cakephp - CakePHP 2.4 从插件中抛出主要应用程序异常?(干扰 requestAction?)

我正在将我的 CakePHP (v 2.44) 应用程序的一个运行良好的部分变成一个插件,当从我的插件的控制器中抛出异常时,我得到了最奇怪的行为:异常处理程序/渲染器开始使用我的app/View/Layouts/mylayout.ctp 中的主站点布局,然后使用 app/View/Layouts/error.ctp 中的默认布局中断它。这是一个摘录:

如果您注意到在 Cake 组成布局的过程中,它看起来像一个新的标头。就在我的布局被中断的地方,我加载了一个元素,并且该元素使用了 requestAction(在我的开发环境中没有缓存)。如果我删除该元素,那么我的布局会呈现更多,直到遇到使用 requestAction 的下一个元素。这些 requestAction 调用不会向引发异常的插件请求操作。

我正在使用 app/Config/core.php 中的所有默认错误处理程序。唯一不同的是在错误视图中指定 $this->layout。

现在,如果我在插件的 View 文件夹中重新创建原始错误布局和视图,事情就会像我预期的那样工作。但出于实验目的,我将我的主站点布局的重命名副本放在那里,同样的事情。每当遇到使用 requestAction 的元素时,异常都会中断布局。

有任何想法吗?

我会重申,当从应用程序中不是插件的任何地方抛出异常时,一切都会完美运行。

0 投票
3 回答
6655 浏览

php - CakePHP:使用 PasswordableBehavior 的 BeforeSave 和 BeforeValidate

我正在尝试在我的 CakePHP 应用程序中使用 DerEuromark 的 Passwordable 行为,但无法使其正常工作。我按照安装说明(http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/),修改了我的控制器和视图,但我一直收到一个错误,说我的BeforeValidateBeforeSave与行为不兼容 - 当然,行为不起作用。

我知道我需要在我的模型中正确设置这两个,但我不知道它们应该是什么样子 - 说明没有涵盖这一点。

处理这种行为的基本、普通BeforeValidateBeforeSave需要是什么样的?

在我的用户控制器下:

BeforeValidateBeforeSaveuser.php需要兼容的 Passwordable 行为: https ://github.com/dereuromark/tools/blob/master/Model/Behavior/PasswordableBehavior.php

错误:

编辑:用户模型:

0 投票
1 回答
105 浏览

cakephp - CakePHP 使用 hasMany 字段作为 implode() 查找/分页

我有两个模型Model AModel B. Model A有很多Model B

所以现在我想在 View about 中构建一个分页表Model A。我想要一个列,其中的特定字段Model B显示为逗号分隔列表。

想象Model A被命名GroupModel B被命名User

Group hasMany User

现在我想要一张像这样的组表

编号 | 姓名 | 用户

1 | 第一组 | 用户 1、用户 2、用户 3

但我不想在视图中使用 foreach,它应该是数组中已经存在的字符串。

0 投票
1 回答
389 浏览

php - 在使用 ControllerTestCase 进行测试期间,CakePHP AppController 组件不会被组件继承

我正在为我的控制器编写一些单元测试,但是我遇到了一个问题,即在测试期间我的 AppController 文件中定义的组件似乎没有被继承到我的控制器中。

例如,在我的 AppController.php 文件中,我有以下内容:

如果我转到有问题的控制器并在操作中使用以下代码行,debug($this->components);我会得到以下结果:

但是,在单元测试期间,同一行代码将输出以下内容:

控制器本身没有定义任何组件,因此没有任何东西会导致问题,不确定这里的问题是什么或如何解决它。

0 投票
6 回答
859 浏览

php - $this->Auth->user(); 只有 id 而不是整个数组

我正在为 CakePHP 2.x 中的 auth-componentent 苦苦挣扎 这本书在这里说 (底部的最后一个条目)

如果参数为空,则返回所有用户数据。

但如果我回声$u

然后只显示用户ID。我期望整个用户数组。有任何想法吗?

0 投票
1 回答
94 浏览

php - 在链接标签内插入图片

下面的代码不起作用

但是这段代码是有效的。帮帮我

0 投票
3 回答
137 浏览

cakephp - 上传多张带有相关数据的图片

我正在寻找上传多张图片以及将存储在数据库中的相关数据。最重要的数据将包括标题和文件名(以便以后能够访问图像)。

我喜欢点击上传按钮,选择我想要的图像,图像被上传并显示为缩略图(或者可能只是文件名)。每个缩略图/文件名也将有一个字段,用户可以在其中输入图像的标题。然后在提交图像上传和数据可以链接在一起。

我已经四处寻找一个插件或可以帮助解决这个问题的东西,但令人惊讶的是没有太多运气,并且想知道是否有其他人有这方面的经验知道适合的工具。这似乎是一个足够普遍的问题,有人会为它制作插件。

从更大的角度来看,我有一个itemsdb 表和一个item_picsdb 表。我希望能够添加一个item并同时上传多个item_pics带有item_id和他们自己的标题。

0 投票
1 回答
1285 浏览

authentication - 仅使用 sha1 使用 CakePHP 2.4 进行身份验证?

我在 CakePHP 2.4 中的身份验证遇到了一些麻烦。我烘焙了一个简单的应用程序来创建登录。我做了书中所有的事情(Auth和Tutorial)。但只有 sha1 有效。但不是 sha256 或 md5。在搜索和测试之后,我找到了一个解决方案,我必须更改书中的示例代码,现在它可以工作了。但我认为,这不是正确的解决方案。

我在 AppController 中做了以下操作:

我用 md5、sha1 和 sha256 对此进行了测试。没问题。如果密码经过适当的哈希处理,则登录有效。

但我注意到,添加用户仅适用于 sha1,因为这是默认哈希。我的用户模型 beforeSafe 功能是这样的(来自书中):

我想,AppController 中的设置就足够了,也可以更改该区域的 SimplePasswordHasher。但看起来,这还不够。所以我把它改成这样:

对此

现在一切都像一个魅力。但我的问题:

1)我是对的,这是必要的还是我的代码有其他问题?

2)据我所知,$xxx->zzz仅适用于控制器和xxx::zzz()任何地方,对吗?

3)为什么我必须说安全哈希,它应该再次用 sha256 对字符串进行哈希处理,而我通常已经在 AppController 中说过?

0 投票
5 回答
128 浏览

php - 用 CakePHP 修改一行

我正在使用 CakePHP 显示 MySQL 数据库表的前端 GUI。我已经使用bake来自动生成屏幕,我目前有一个功能齐全的应用程序,每行都有查看、编辑和删除按钮。我想为每行添加一个名为 的按钮,该按钮Accept应设置IsAccepted = 1在 SQL 行上。

我设法为Accept每行添加一个按钮,如下所示:

但是里面的代码ProductController.php不起作用:

我究竟做错了什么?如何使用每行按钮正确编辑一行?

0 投票
2 回答
778 浏览

validation - 不同网络浏览器中的不同验证消息

我是 CakePHP 的新手,正在做我的第一个应用程序 - cakephp 教程中的第一个博客。一切都很好,但有一件事困扰着我。当我在模型中定义验证规则时,验证正在工作。

但是每个网络浏览器都会显示不同的消息。例如,Firefox 以捷克语显示消息(我来自捷克),chrome 显示“请填写此字段”和 Internet Explorer 显示“此字段不能留空”。所以我尝试翻译消息(通过添加参数消息进入模型验证)。这是有效的,但仅在 Internet Explorer 中,其他浏览器没有变化。有什么办法,如何在所有浏览器中都有相同的验证消息?

模型验证: