问题标签 [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 投票
0 回答
408 浏览

cakephp-3.0 - CakePHP 3.x 如何从 Src 调用 Api -> 控制器 -> 动作 -> 控制器 -> 动作?

我们正在尝试为 API 目的构建另一个应用程序,因此根据我们的要求,我们在 composer 文件中进行了更改以自动加载 api 控制器和模型等。

像这样:

所以现在我们的 cakephp 3.x 文件夹结构如下:

我们正在尝试调用位于 API 文件夹中的控制器/操作,如下所示:

尝试从以下位置调用:

有什么方法可以打电话吗?

我们可以使用requestAction,但我们在 SRC 和 API 文件夹中都存在相同的控制器和动作名称,例如 UsersControler -> login Action 在这种情况下可能是 SRC 控制器并且将调用动作,这是如何解决的主要问题?

任何有想法的人请分享您的想法和知识。

谢谢!

0 投票
3 回答
35869 浏览

php - 干预图像:直接从带有原始文件名和分机的网址保存图像?

从远程服务器获取图像时如何获取文件名?以及如何以原始大小和文件名保存?

我使用干预( http://image.intervention.io/api/make ) 来构建 CakePHP 3 图像行为,我想提供从远程服务器轻松上传的功能,并保留原始图像作为未来操作的来源。

编辑

我问,当从远程服务器获取时,是否有返回文件名的干预图像方法。我知道 php copy()、basename(),我也可以使用 CakePHP File 实用程序,但它给了我对远程文件的重复请求。

0 投票
0 回答
79 浏览

cakephp - cakephp 3 控制器动作 -> 如何让它变得聪明

我以最不优雅的方式实现了一个控制器动作。这怎么能变得更好?表类就像 after bin/cake bake。我认为创建实体的部分可以非常简单。

我在做什么: Books --belongsTo--> Publishers <--habtm--> Publishernumbers 将 Book 添加到数据库时,publishernumber 是从 ISBN 号中提取的。然后,此编号以 habtm 关系链接到发布者。我需要在表单中输入 isbn 时向用户建议一些出版商。

该代码目前有效,但一年后,只有上帝会知道我在这里做了什么。第一部分很简单。

这是混乱开始的部分。我认为这可以做得更优雅。

保存

0 投票
1 回答
815 浏览

validation - CakePHP 3.1:翻译行为字段的验证 (i18n)

我正在尝试使用 CakePHP translate behavior以一种形式添加一个包含多个翻译的项目。

如何验证翻译字段?例如,需要特定的语言?

假设您有一个简单的items表,其中包含一个单独的翻译表 items_i18n,按照书中的描述进行设置。作为一个简单的例子,该items表只有一个title要翻译的字段,我想以title五种语言保存。所以我制作了这样的表格(在add视图模板中):

并像这样保存在控制器(add动作/功能)中:

这是在没有验证的情况下工作,或者如果我只有“本机”title字段的验证规则(应该,我简化了 stackoverflow 的代码并为示例重命名了一些部分,所以可能有一些拼写错误,但你应该明白...)。

现在让我们进一步假设语言英语(默认)和西班牙语必需的,其他语言字段是可选的。我怎样才能做到这一点?

ItemsTable我尝试过这样的验证:

但这总是会带来验证错误“此字段是必需的”,因为patchEntity($item, $this->request->data);会导致翻译被丢弃。我通过GitHub 上关于保存工作流程的一个未解决的问题知道这一点(顺便说一句,此请求 +1 :)。

所以目前我不确定在使用 CakePHP 翻译行为时是否有办法为翻译字段定义验证规则......所需的语言字段只是一个例子,如果你想验证同样的问题,例如 min/max外语输入字段的长度...

0 投票
1 回答
621 浏览

cakephp - CakePHP 3.1:用于翻译行为的语言字母代码 (i18n)

不一致?在CakePHP 3 书中关于翻译行为的章节中,使用了三个字母的代码,这些代码来自英文名称,而不是像ISO 639-2这样的语言的本地名称:

用这个例子来改变语言:

但是在关于国际化和本地化的章节中它说

翻译文件夹可以是语言的两个字母 ISO 代码,也可以是完整的区域设置名称,例如 fr_FR、es_AR、da_DK,其中包含语言和使用该语言的国家/地区。

更改语言的示例如下所示:

那么关于translate behaviour过时的章节还是所有方法都正确?我认为保持一致并在两者中使用相同的语言代码可能会更好,Translate behaviour并且Internationalization and Localization

此外,i18n 模式表示例将该字段定义localevarchar(6)...如果需要 3 个字母代码就varchar(3)足够了...但即使我使用完整的本地代码(如fr_FRvarchar(5))也足够了。为什么使用示例模式varchar(6)

0 投票
3 回答
256 浏览

php - CakePHP 3.1:在 joinTable 中保存相同的外键但不同的 _joinData

我在要保存的模型中有这个关联:

我想保存在关联表tags_associations2 中具有相同Tags.id但不同_joinData值的记录。这是一个例子

在我的示例中,只有第二个实体保存在 tags_association 表中。

0 投票
1 回答
1334 浏览

cakephp - CakePHP 3:带有 BelongsToMany 的 CounterCache

我有一个BelongsToMany关联,我的表PostsTableTagsTablePostsTagsTable

正如CakePHP book (associations) 中解释的那样,我有以下字段:

现在一切正常。所以,正如你所理解的,现在我想将tags.post_count字段与CounterCache.

我遵循了CakePHP 的书,但我想这是一个特例,实际上它并不能通过简单地将行为添加到PostsTable.

你能帮助我吗?谢谢。

0 投票
1 回答
1411 浏览

cakephp - CakePHP 3:上传多个文件并将文件名保存在关联模型中?

我需要创建上传过程,用户可以使用带有 html5 多个属性的文件字段一次上传多个文件。文件名必须保存在关联模型中。

我可以成功运行上传一个文件并将文件名保存在照片表中,跨字段:

但是,如果我想启用上传更多照片

我陷入了这个问题,并试图了解我在哪里犯了错误,但没有成功。

帖子控制器:

帖子表:

上传行为

我目前执行调试 $data / $entity 的所有标准回调,但仅在beforeMarshal 我使用:

在 beforeSave 和 afterSave

我的表单没问题,数据在 Marshal 方法之前正确输入,如果我上传 3 个文件,我也会看到相同数量的调试输出,但在 beforSave 和 afterSave 调试中只显示第一个文件,如下所示:

编辑:

为了测试的目的,我创建了这样一个表格:

此外,它只保存第一个结果。

我需要帮助来了解如何保存多个表单数据。我哪里错了?

0 投票
1 回答
1141 浏览

cakephp-3.1 - 我应该在哪里为 CakePHP 3 中的 json 视图创建模板?

我正在使用 CakePHP 3.1 并尝试为User模型呈现 json 索引响应。我按照CakePHP 手册页index.ctp在目录下创建src/Template/Users/json/,但该文件没有被控制器挂钩。我也试过src/View/Users了,也没用。我应该指定要渲染的文件还是其他?在src/Controller/UsersController.php,我有index()方法

$users = $this->paginate('Users'); $this->set(compact('users'));

0 投票
1 回答
628 浏览

cakephp - CakePHP 3:行为如何处理多个数据?

我想创建一个 CakePHP 行为,它将在数据存储到数据库之前对其进行处理。

例如,我有帖子添加表单,如:

帖子控制器:

表单中的数据正确存储在数据库中。

接下来,我烘焙一个新行为(例如,MyBehavoir),并将其附加到 PhotosTable。我想检索所有三个“名称”字段,例如处理它们。通过 ucfirst 方法转换,并将其发送回存储在数据库中。

但只有第一个结果 (Zzz) 被保存。

我应该怎么做,在行为中处理后保存所有字段?

还,

调试仅显示来自第一个字段的数据