问题标签 [cakephp-4.x]

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 回答
1085 浏览

cakephp - CakePHP:从 3.9.x 升级到 4.0:bin/cake 升级 rector --rules phpunit80 挂起

我正在将 CakePHP 3 应用程序升级到 CakePHP 4,并遵循升级指南。

但是,该bin/cake upgrade rector --rules phpunit80 <path/to/app/tests>工具挂起。

一点背景知识,我的应用程序主要是用 CakePHP 3.6 制作的。我将其升级到 3.7,然后是 3.8,然后是 3.9,并在尝试升级到 4 之前确保一切正常(没有弃用警告)。

我正在关注CakePHP 4.0 升级指南。所有步骤都成功到“应用 Rector Refactorings”。

当我运行这个:

我得到这个结果:

然后,

它只是挂在那里(已经大约 1 小时)。

关于如何解决这个问题有什么建议吗?

谢谢!D.

0 投票
2 回答
320 浏览

session - CakePHP 4:如何读取表类(模型)中的会话数据?

我已将 CakePHP 从 3.6 版升级到 4.0,在 3.6 版中,我可以使用以下解决方法访问模型中的会话,

现在的问题是,在较新的版本 4.0 中,它给出了错误"Class 'Cake\Network\Session' not found"

谁能帮助如何在 cakephp 4 版本中访问模型中的会话?

谢谢

0 投票
1 回答
125 浏览

cakephp - CakePHP TinyAuth 适配器实现

我正在使用 TinyAuth CakePHP 插件来管理我网站上的权限。

他们还有一个插件来使用带有 CakePHP 3.7+ 的数据库来管理 ACL(访问控制列表),但该插件不适用于 CakePHP 4.0

我目前正在编写自定义适配器来管理数据库的授权,就像这里建议的那样。

我的主要问题是:我不知道我应该在哪里写我的新适配器?

目前,它们位于 TinyAuth 供应商文件夹中,我将它们导入app_local.php中,如下所示:

这是有效的。我没有设法让它们在我的项目文件夹中工作,因为我无法导入类(???)

这是一种安全/好方法吗?创建自己的插件,还是在别处编写我的 php 类并导入它对我来说更好吗?在 CakePHP 4 app_local.php中导入文件是否安全?

我对 PSR-4 和 CakePHP 框架标准真的很陌生,如果我的问题很愚蠢,很抱歉,但我真的很想把事情做对......

提前谢谢你

0 投票
1 回答
471 浏览

php - CakePHP 4 - 烘烤不会让我使用不同的数据库连接到“默认”

CakePHP 4.0.8

在我config/app_local.php的定义中,我定义了 2 个不同的数据库:

当我执行php bin/cake.php bake model时,它将列出default数据库配置中的表,即db1.

我无法更改interface_db和烘焙模型db2。在 CakePHP 3 中,我使用-c带有 bake 的标志来更改连接,例如bin/cake.php bake model -cinterface_db

这给出了一个错误:

数组键interface_db定义到 的连接db2

为什么会出现这种情况?它曾经在 Cake 3 中工作。

0 投票
3 回答
982 浏览

cakephp-4.x - 成功登录后的 CakePHP 4 身份验证重定向

我正在一个新的 CakePHP 4 应用程序中实现身份验证(根据 CMS 教程)

我不得不将getAuthenticationServiceApplication.php 中的方法更改为:

遵循我在这里看到的建议。

这行得通,我得到了我的登录模板,可以登录,并且 Auth 会话数据设置正确。

但是,登录后,我不会重定向回引用页面,而是重定向到包含我的基本应用名称两次的 URL : http://localhost/my_app_name/my_app_name/my_controller

因此,我不确定在成功登录后在哪里设置(或更确切地说是重新设置)基本网址以进行正确的重定向。

0 投票
1 回答
139 浏览

cakephp - 尽管使用安全组件解锁操作,为什么 AJAX 请求会触发 400 响应?

我试图让一个在 CakePHP4 中工作的 ajax 请求,但继续遇到 CSRF 保护。

在我的控制器中:

然后在模板文件中:

没有beforeSend在 ajax 调用中,我得到 403 响应。如果我包含 X-CSRF-Token,我会收到 400 响应。

不确定它是否相关,但我正在使用身份验证插件。( https://book.cakephp.org/authentication/2/en/index.html )

0 投票
0 回答
93 浏览

cakephp - 链式选择 CakePHP4

我正在尝试在 CakePHP 4 中创建一个链式选择下拉列表。我搜索了几个论坛并找到了一些解决方案,发现它们可以与以前的 CakePHP 版本一起使用。我遵循 CakePHP 4 Sandbox中的代码,这是一个很好的示例项目。但是,当我请求链接的选定值时,它显示错误“发生错误:未定义”。

我的数据库表:

  1. 国家 [id,name]
  2. 状态 [id,name]
  3. 位置 [id,country_id, state_id]

我已经烘焙了代码,所有关系都运行良好。然后我修改了以下代码:

  1. 下载Ajax 插件并启用它。

  2. 创建公共函数chainedDropdowns和countryStates如下:

  1. 在 ...localhost\cake4\templates\Locations\chained_dropdowns.php 创建 chaindropdown 页面
  1. 在 ...localhost\cake4\templates\Locations\ajax\country_states.php 创建 country_states

选择国家时,例如:泰国,各州将列出曼谷、甲米、普吉岛。但是,它会产生错误:localhost 说:发生错误:未定义。

错误信息

浏览器控制台显示错误:toolbar.js?1589525179:91 GET http://localhost/cake4/locations/country-states.json?id=2 500(内部服务器错误)

控制台错误

Apache访问日志显示:

我怎么解决这个问题。谢谢你的帮助。

0 投票
0 回答
481 浏览

php - Cakephp 4 蛞蝓生成

我有个问题。我正在根据他们官方网站上的指南在 Cakephp 中构建一个 CMS。一切都很顺利,但我有一个问题。正如文章补充的那样,不会生成任何服务。一切都按照教程 100% 完成。

你能猜出它是由什么引起的吗?

我把它放在 ArticlesTable 中,但它似乎不起作用。

有任何想法吗 ?

0 投票
1 回答
316 浏览

cakephp - Cakephp4,检测上传字段是否存在

从 3.9 迁移时,尝试检查文件是否已使用上传行为上传时出现错误。

我应该如何检查文件是否已上传。请注意,它没有附加到模型,我不想添加验证,只需签入控制器。

0 投票
1 回答
249 浏览

php - PHPUnit CakePHP 4.X - 模拟身份对象,但如何?

我用 cakephp 4.x 写了一个 webaplication。在我的控制器(AppController.php)中,我实现了以下内容:

现在我编写了以下phpunit测试:

但我的身份对象总是空的。

空标识对象

该对象实际上应该如下所示:

带有数据的原始对象

我没有更多的想法如何实施它。有人能帮我吗?:)