问题标签 [cakephp-3.0]

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

cakephp - cakePHP3:如何编写干净的 MVC 代码?

我想根据 cakePHP3 中的 MVC 范例编写我的代码:

我有一个公式来注册所有者,但作为所有者基本上是具有附加信息的用户,我有 2 个 SQL 表;一个用于指向所有者的用户,一个用于所有者。

这里的想法是用户不一定是所有者。

所以我目前编写了代码,它在 OwnerController.php 中的添加操作中执行我想要的操作。

现在,我想这样写:

所以,我会在我的 Owner.php 中有一个 addOwner() 操作,让他做所有需要的事情。

我的问题是我在文档中没有看到如何从我的 Owner 模型访问我的 User 模型,更准确地说,如何使 User 模型验证并保存其记录。

也许我错了,但我在教程中并没有真正看到这种编码方式。

所有者.php

用户.php

用户表.php

OwnersTable.php

你能告诉我两者之间的关系吗?

0 投票
2 回答
4335 浏览

cakephp - 从表单中的关联模型获取验证错误

我有 2 个模型所有者和用户关联为用户属于所有者。

我只有一个表格来收集两个模型/表格的数据。

表单布局在下面的 add.ctp 中声明:

此表单由 OwnersController.php 控制

一切正常,我可以输入我的数据,验证并神奇地保存所有者和用户的数据,这要归功于神话般的 ORM。

但是我对来自验证器的错误消息有疑问。

无论错误来自所有者的验证器还是用户的验证器,我都会在表单中看到我的 flash 消息告诉您有问题,但我只看到所有者数据的字段错误消息,而不是用户数据的错误消息。

如果我在提交空白表单后调试所有者,我可以看到:

如您所见,该对象包含有关所有者和关联用户的错误,但由于我无法猜测的原因,cakePHP 似乎无法从用户那里获取错误。

所以我想知道它是否应该工作,如果我在某个地方犯了错误,可以解释它无法检索用户的错误。

0 投票
1 回答
4061 浏览

orm - 在 CakePHP 3 控制器中保存相关数据

在文档中确切地说,可以像这样保存相关数据:

我在我的代码中尝试了这个,但我得到了错误:

致命错误错误:找不到类“App\Controller\TableRegistry”
文件/Users/mtkocak/Sites/gscrm/src/Controller/BusinessesController.php 行:62

这是我的控制器代码。我怀疑上面的代码对实体模型有效。

这是我的表的 sql 转储:

任何帮助表示赞赏。

0 投票
1 回答
90 浏览

cakephp-3.0 - 使用联合对模型的空响应

我有以下代码

findAccessible 调用在 Chrome 中给了我这个错误消息: ERR_EMPTY_RESPONSE 没有其他错误消息,错误日志中没有条目。我确信这是因为工会的呼吁。怎么做?

我想要实现的目标: groups hasAndBelongsTo users groups: id, name, admin_user_id, public

我想组团

1)什么是公共组(这个没问题,findPublic方法)

2)其中 admin_user 是给定的用户(这没关系,findMyAdmin 方法)

3)在给定用户是成员的地方(这没关系,我可以用另一个 find()->matching 调用来做到这一点)

4)用户可以访问的,例如。公共或给定用户是管理员或成员 - 意思是 1)、2) 和 3) 的联合 - 这就是我正在努力的问题。如果我将所有这些都放在一个查找方法中,我将无法为成员资格定义 OR 关系,因为这是通过匹配翻译成内部连接的内容来完成的。

0 投票
0 回答
182 浏览

php - InnoDB and saving associations in cakePHP 3

I have this database table:

It has innodb engine and uses foreign keys.

The controller code at src/Controller/BusinessesController add

And finally my form at /src/Template/Businesses/add.ctp

However when I try to save, I get "The business could not be saved. Please, try again." error. When I check sql log, I can't see anything than "BEGIN, ROLLBACK"

Any help will be appreciated.

UPDATE: Saving related data requires form like this:

0 投票
2 回答
2996 浏览

php - CakePHP 3:用户不允许注销?

我正在学习 cakePHP 3 以申请实习,我目前正在学习 cakePHP.org官方食谱中的教程,但我讨厌这本书。这很令人困惑。

无论如何,我做了书签示例的步骤,它有点工作,我做了所有的事情,就像这本书告诉我的那样,直到登录和注销部分,但是当我尝试从系统中注销时,它告诉我“你没有被授权访问该位置。”

如果您需要我项目中的任何其他代码,请告诉我。

要注销,我将使用以下代码引导用户,该代码会生成指向以下内容的超链接server/users/logout

/rootOfProject/src/Controller/AppController.php:

/rootOfProject/src/Controller/UsersController.php:

0 投票
1 回答
2435 浏览

cakephp-3.0 - 如何从包含的表中返回 sum()?

我的表中有一个自定义查找器方法,Matches其中包含一些其他表,我想返回我包含的字段之一的总和值。

到目前为止,我有以下内容。

此代码将正常执行并且不会产生错误。同时检查 DebugKit 中的 SQL 选项卡会显示 sql 已被执行。

但是,数据在任何返回的实体中都不可用。我在哪里可以找到我的汇总数据?

0 投票
3 回答
7287 浏览

cakephp - cakephp 3.0 isAuthorized() 未被调用

我已按照教程和所有 CakePHP 授权指南进行操作,但无法调用我的 isAuthorized() 方法。我的理解(如果我错了,请纠正我,这极有可能)是通过'authorize'->['Controller']in将授权委托给特定的控制器AppController.php,当调用 UsersController 中的方法时,在本例中为“add”,UsersController 将运行isAuthorized()我定义的方法。我正在测试这个方法是否运行,在isAuthorized()被调用时输出一个 flash->error 消息,但没有任何反应。如果我显式调用isAuthorized($hardcodeduser)我的beforeFilter()方法,它将起作用,但前提是我对用户进行硬编码。

该方法应该工作的方式是:如果注册用户请求添加/创建新用户,系统会检查用户是否具有管理员/员工级别的权限(数据库中只是一个 0 或 1 值)如果用户没有权限,那么它会重定向到主屏幕,并显示一条错误消息,显示“您无权访问该功能”。

任何帮助或建议或其他链接将不胜感激!

0 投票
1 回答
1265 浏览

php - CakePHP3 多对多关系

我正在尝试保存一个在 CakePHP3 中具有多对多关系的表单,但我无法正确呈现该表单。(用户 HABTM 标签)

在我的控制器中,我设置了要编辑的对象:

在我看来:

我的问题是加载时未检查所选标签,我该如何解决?

0 投票
0 回答
1007 浏览

php - 从 cakePHP 中的对象中检索属性

我对 PHP 很陌生,如果这是一个非常愚蠢的问题,我很抱歉。

我正在使用 cakePHP,我在一个方法中有以下代码/src/Controller/CommentsController.php

当我debug($comment)得到类似的东西时:

我需要将其与另一个变量进行比较'user_id''properties'但我不知道如何访问对象的属性$comment。我试过$comment->propertiesand $comment['properties'],但都返回null。您将如何访问这些属性?