问题标签 [cakephp-3.1]

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

cakephp - 带有附加数据的 Cakephp 3 habtm

在浏览关于书签和标签的 cakephp 3 教程时,我遇到了一个问题:我想将第三个字段添加到users_tags表中(tag_type:重要与否),但是当它保存数据时,它会将以前的值重写为默认值的数据库值"tag_type"

你能帮我弄清楚我做错了什么吗?

0 投票
0 回答
125 浏览

jquery - 如何在 CakePHP 3.x 中认为请求完成之前检查 ajax 响应?

我一直在尝试添加两个用户(一次一个),然后使用条带付款。我原本以为问题出在ajax是异步的,同时发布两个用户表单,但现在我相信是因为当我得到操作的响应时,认为ajax操作已经完成,它会移动到其他操作。

响应带有验证错误,我正在使用 jQuery 函数将错误添加到表单中,并且在修复错误之前不会提交该表单。

这是一个主要问题,因为这两个用户将通过 group_id 链接,该 group_id 的值与主用户(用户 #1)的 id 相同。如果用户 #1 有验证错误而用户 #2 没有,则用户 #2 会被添加,因此无法链接到用户 #1 的 id 值,因为它还不存在。

我可以解决每个用户表单上的隐藏表单字段,该表单字段具有 group_id 的匹配值,然后在添加用户 #1 后更新数据,但我希望能够在 ajax 操作之前检查错误响应完成了。有没有办法做到这一点?

我的 Ajax 函数:

提交表格功能:

我认为您不需要查看添加错误的功能,因为该功能可以正常工作。只要知道它们是通过 addFormErrors() 函数添加的。

0 投票
3 回答
307 浏览

cakephp - File fails to upload when using xety/cake3-upload plugin

I am not able to upload a file from one folder to another in CakePHP. Here is my code.

First I loaded the plugin and added this code in ProductsTable.php

then I added in my add.cpt

Still the file doesn't get moved to the webroot dir.

enter code here public function add() {

0 投票
1 回答
836 浏览

php - CakePHP 3:hasOne 关联没有被保存/创建

Cake PHP Version: 3.1.5

我在保存hasOne关联时遇到问题,该关联在一张桌子上运行良好,但在第二张桌子上却不行。

Tickets并且在 belongsTo 关系Cashdrafts中相关。CashpositionsCashpositions 为他们的 id 持有两个 FK。因此,当自动创建新的现金头寸时,它会持有aa 。第二个 FK 将为空。ticket_id cashdraft_id

问题是,Tickets-Cashpositions 保存工作正常,因此每次创建票证时都会创建相关的现金头寸。但它不适用于 Cashdrafts-Cashpositions。我不明白为什么,因为设置和关系完全相同。

这是设置:

然后在控制器的 add() 函数中:

调试了 $ticket 和 $cashdraft。但我不能说我理解输出,因为:

票的数组将显示所有相关数据,但没有现金头寸,尽管它的新记录已成功创建...

并且未创建相关现金头寸的新现金汇票的数组将如下所示并为其显示“null”:

}

在 DebugKit 中的SQL中,我可以看到,对于票据,插入到相关的 cashpositions 表中已经完成。但是对于现金汇票,相关表中没有插入。所以很明显,Cake 甚至没有尝试创建关联的记录。

我现在真的没主意了!在数据库本身中,两个 FK 的设置完全相同,名称正确等。

有谁知道问题可能是什么,或者我可以在哪里进一步寻找第二个关联不起作用的原因?谢谢!

0 投票
2 回答
1343 浏览

cakephp - CakePHP 3:从控制器上传图像

我正在尝试使用 PHP 从控制器上传图像。此处图像上传工作正常,但内容未保存在数据库中,仅保存图像路径。如果我对图像上传代码发表评论,那么内容就会很好地添加到数据库中。

这是我尝试过的代码

在控制器中,我尝试了以下代码来上传图片

这里只有图片目录保存在数据库中,标题和新闻不保存。

0 投票
1 回答
546 浏览

php - CakePHP 3.1 patchEntity 在干净时总是将belongsToMany关联标记为脏

所以我注意到,如果我修补一个实体(编辑方法),并且如果它具有 belongsToMany 关联,我是否对记录进行任何数据更改,它会将它们标记为脏。我希望如果我不对视图中的 BTM 多选进行任何更改,则数据不会是脏的,只有在多选中添加或删除选项才会在修补后被标记为脏。

数据确实保存正确,只是脏了,但我需要知道它是脏的还是干净的,因为我的映射表中有 _join 数据。映射表名为 users_locations,具有 id、user_id、location_id 和 static,其中 static 是 tinyint/bool。

我想要做的只是为新创建的映射表条目标记静态。

我注意到 patchEntity 正在剥离 _joinData 作为编组过程的一部分。

因此,查看下面的调试输出,您可以看到 _joinData 在修补位置和 user_occupations 之后被剥离。

不知道相关数据是干净的还是脏的,这对我来说似乎是不可取的。也许它打算以这种方式工作,我错过了一些东西。想法?

在编辑表单中,我有:

在控制器中我有:

在模型中,我在用户的初始化函数中有这个:

这是请求数据调试输出:

这是修补请求数据之前的用户实体:

这是使用请求数据修补后调试输出的样子:

0 投票
0 回答
571 浏览

cakephp - CakePhp 3.x 没有正确保存日期时间

我有一个事件的开始和结束的日期时间输入的事件。如果我尝试在上午 11:30 保存 2015 年 12 月 8 日开始,在下午 12:30 保存 2015 年 12 月 8 日结束,则事件将被保存,但日期为 2015 年 12 月 9 日。我不知道它为什么这样做。我尝试添加验证规则,如“datetime”和“notBlank”,但这只会给我错误提示字段无效和/或必需。所以我把验证规则去掉了。有什么建议为什么日期时间的行为如此奇怪?

形式:

0 投票
1 回答
1240 浏览

sorting - CakePHP 3:按语言排序的分页器(具有 i18n 翻译行为)

我有一个包含所有条目的表格,包括多种语言的所有翻译:如何在翻译字段上创建分页排序链接?(蛋糕3.1.6)

摘要:这不起作用,我无法以这种方式对翻译进行排序:

长版:

  • 我正在使用带有翻译行为的i18n 表
  • 我将所有翻译(多种语言)组合在一个表中。
  • 现在我想在翻译上使用分页排序链接(按语言排序)

所以这是我的简化测试设置:

表格文章只有一个title需要翻译的字段。
i18n表是本书中描述的默认设置。

烘焙/src/Model/Table/ArticlesTable.php,添加翻译行为

烘焙实体/src/Model/Entity/Article.php,添加TranslateTrait

烘焙控制器 /src/Controller/ArticlesController.php,修改如下:

烘焙视图 /src/Template/Articles/index.ctp,修改/简化:

表中的翻译显示正确,但无法按翻译字段排序。当我单击翻译的分页链接时,出现以下错误:

SQLSTATE [42S22]:未找到列:1054 未知列“_translations.es”在“订单子句”中

这个类似的问题中,使用了格式Posts_title_translation.content- 我不知道这是从哪里来的,但我也尝试过这种方式(当然我还在分页器白名单中添加了字段名称的变体):

他们都没有工作......(显然)

如何按标题字段的 i18n 翻译对表格项目进行排序?

0 投票
2 回答
2252 浏览

php - CAKEPHP 3.1 提交后清除表单

通常在 cakephp2 上,我曾经取消设置表单数据,一切都很好。

有时我使用重定向来清除它。但我不能在当前页面中这样做。

任何人都发现了这个问题或解决方案?

0 投票
1 回答
1006 浏览

date - cakephp 3.1 欧洲日期格式的输入字段

我有一个包含用户记录(姓名、名字、出生日期等)的表,我想按姓名或出生日期或所有可能的组合查找用户。

我的代码运行良好,但生日是以美国格式 (YYYY-MM-dd) 存储的,所以我必须以这种格式搜索日期以获得正确的记录。这真的很烦人,因为在德国我们使用欧洲格式(dd.MM.YYYY),我想按我们习惯的格式搜索日期。现在我需要帮助来为输入字段提供欧洲格式并获得正确的记录。

我希望,你明白我的问题。:)

这是我的控制器代码的摘录:

从我的角度来看,这是代码的相关部分:

非常感谢。