问题标签 [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 回答
2759 浏览

validation - CakePHP3 中令人困惑的验证与应用程序规则

关于验证的多个问题可能属于一起,因为它们都在处理 CakePHP 3 中的新验证概念。

我已经多次阅读食谱中的章节(1、2、3 但老实说,我不明白如何以正确的方式去做。我也知道目前在 GitHub 上有一个关于 CakePHP3 中的验证的问题/讨论,它可能涉及相同的主题。

验证错误被触发,例如使用 patchEntity。因此,我认为在执行保存操作之前始终检查/显示错误会更好:

为什么食谱教程$user->errors()在保存数据之前不使用?据我了解,save如果已经存在验证错误,则不需要调用它?!另一种方法是结合错误检查和保存操作:

你在用这个吗?我应该使用它吗?或者如果不是,为什么不呢?

为什么即使我没有$user->errors()在控制器中使用 CakePHP 也会显示验证错误,就像在所有食谱示例中一样?我以为save不会检查实体验证?!

示例:isUnique

根据食谱, “确保电子邮件唯一性”是应用程序规则的一个用例。

该错误只能通过save控制器中的 -call 触发。但也可以在验证中检查唯一性。为什么不这样做更好?

如果我可以在验证中添加 ApplicationRule,为什么我会/应该使用 ApplicationRules?

我如何在 ApplicationRule 中定义规则何时应仅应用于特定操作(并非所有创建/更新调用)?

patchEntity当在-call之后操作实体时,我也没有看到或理解两个单独的验证状态的好处。

如果我自动向实体添加一些值,我想确保这些值在将它们保存到数据库之前仍然有效(如在 CakePHP2 中)。所以我想总是 使用验证作为应用程序规则更好/必要?!

你一般如何处理这个问题?是否有其他示例可用于显示/展示验证与应用程序规则的好处和一些用例?

0 投票
1 回答
85 浏览

cakephp - 如何仅为所有控制器订购一次数据?

我正在用 CakePHP 3 (3.0.13) 编写一个非常简单的应用程序,我想知道我是否可以做一些更简单、更好的事情。

我本质上是在编写一个问题跟踪器来跟踪问题和工作。我有一个名为priorities 的表,其中包含每个级别的唯一ID 和名称,例如Low、Medium 和High。我的问题是,虽然我已按照我希望它们出现的顺序将它们添加到数据库中,但它们是按字母顺序出现的,即高、低、中。

在我的问题控制器的添加功能(例如)中,我可以更改以下内容:

$priorities = $this->Issues->Priorities->find('list');

...至:

$priorities = $this->Issues->Priorities->find('list', ['order' => 'Priorities.id ASC']);

...但我不想在任何我想使用优先级列表的地方都这样做。

我想有一种 DRY 方式来指定这个(在模型中?),它有效地设置了在其他地方使用的默认值,但如果有,我找不到它。

0 投票
0 回答
469 浏览

cakephp - CakePHP 3.1-rc1 utf-8 特殊字符输出

在从 2.6 迁移到 3.1 期间,可能会遇到在克罗地亚语中显示特殊字符的问题。内容取自数据库。

内容通过 CakePHP 2.x 应用程序存储在数据库中,并且可以正确显示。但是当我连接一个新的应用程序时,我无法正确显示这些字符 čćšđž。

数据库/表: MyISAM utf8_general_ci

cakephp 2.x 应用程序

核心.php

引导程序.php

cakephp 3.1- rc1

引导程序.php

如何解决这个问题?

0 投票
1 回答
1780 浏览

email - 在 CakePHP 3.1 中尝试通过 Mandrill 发送电子邮件时超时

我正在尝试通过 Mandrill 发送一封带有 CakePHP 的电子邮件,但它只是旋转然后给出:

错误:连接超时

蛋糕\网络\异常\套接字异常

根据页面错误/堆栈跟踪,错误发生在vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php line 206

从 /tmp/error.log:

2015-09-21 13:48:04 错误:[Cake\Network\Exception\SocketException] 连接超时请求 URL:/portal/users/add 堆栈跟踪:

#0 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(206): Cake\Network\Socket->connect()

#1 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(161): Cake\Mailer\Transport\SmtpTransport->_connect()

#2 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Email.php(1304): Cake\Mailer\Transport\SmtpTransport->send(对象(Cake\Mailer\Email))

#3 /home/user/public_html/user/mysitefolder/src/Controller/Portal/UsersController.php(92): Cake\Mailer\Email->send()

#4【内部函数】:App\Controller\Portal\UsersController->add()

#5 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Controller/Controller.php(416): call_user_func_array(Array, Array)

#6 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(114): Cake\Controller\Controller->invokeAction()

#7 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(对象(App\Controller\Portal\UsersController))

#8 /home/user/public_html/user/mysitefolder/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))

#9 {主要}

在控制器中发送电子邮件:

在我的 app.php 中:

如果我只尝试标准的 PHP 邮件,它可以工作:

回顾: 我已经检查过 Mandrill,他们说他们不会阻止任何端口或类似的东西。我已经验证了我的主机(HostMonster),他们说端口是开放的,他们没有阻止任何东西。

我不知所措。即使不可能得到明确的答案,我也很感激任何帮助指出我正确的方向或一些想法,我什至可以调试这个问题。

0 投票
2 回答
3834 浏览

php - cakephp3 session deprecated

I have update into my project the last version of cakephp core. Now I get this error:

The error I think is in this line:

What should I use instead?

Thanks

0 投票
1 回答
1936 浏览

cakephp - $this->viewPath 不适用于 CakePHP 3.1

我已通过 composer 将我的 cakePHP 应用程序更新到 3.1,并且我正在尝试修复所有小的或已弃用的警告。

我可以很容易地修复这些$this->layout东西,但我不明白如何修复viewPath错误。

查看迁移指南,它看起来应该是完全相同的东西:

应该成为

但这不起作用,我唯一得到的是

解决此问题的正确方法是什么?

0 投票
1 回答
926 浏览

php - cakephp3 自定义验证

我有一个duration字段有时可以为空,有时不能,具体取决于表单发送的其他数据。所以我正在尝试在 CakePHP3 中进行自定义验证。

在我的桌子上我做了

现在,当我设置持续时间字段的值时,我得到一个'duration is not OK'错误(如预期的那样)。但是当我让值为空时,我得到一个'This field cannot be left empty'错误。

所以我补充说:

但在这种情况下,当duration为空时,我根本不会收到错误消息。

我做错了什么还是只是我不了解验证的工作原理?

0 投票
0 回答
241 浏览

php - 带有条件语句的 CakePHP 3.1 路由

我正在使用 CakePHP 3.1,我正在尝试创建一个像这个伪代码一样工作的路由

类别将控制更改样式的主题,我将在我的 ArticlesController.php 中添加

这甚至可能吗?如果检查是否存在超出路由范围,我不介意检查 inList。由于类别和子类别将是固定数量。

这对路线来说很复杂吗?我应该在视图操作下的 ArticlesController.php 中执行此操作吗?然后做

0 投票
1 回答
460 浏览

cakephp - 从 cakePHP 3.1 起响应 XML 不工作

我需要在我的应用程序中呈现一个 XML+XSL 模板,它曾经与 cakePHP 3.0 一起使用。我最近切换到 3.1 并且它已停止工作。问题是我有一个格式化的 XML 视图,而现在我只得到一个纯字符串。

迁移指南说了一些关于RequestHandlerComponent.

这是我的控制器(与 Ca​​ke3.0 完全一样):

布局,xml.ctp真的很简单

并且viewxml.ctp模板只是将 xml 作为字符串回显。

如何再次获取格式化的 XML+XSL?

0 投票
1 回答
1084 浏览

apache - CakePHP 3.1 安装:内部服务器错误 500

我已经通过 composer 在我的 apache 服务器上安装了 CakePHP 3.1,但之后我收到 500 错误。.htaccess 文件看起来不错。对于 vhost 和 */htdocs,“AllowOverride All”设置为 All。日志显示这一行: [Thu Sep 24 10:15:20.193955 2015] [:error] [pid 7231:tid 2761524324096] (104)Connection reset by peer: [client 89.x.x.x:42930] FastCGI: failed to read from backend server

由于我的主人是 Gandi,我在那里查找了一些提示:

此错误表明 Apache 服务未从解释器(PHP、node.js、Python 等)获得响应,因此无法传递请求的页面。发生此错误时,您应该分析解释器的日志,以便搜索问题根源所在的错误。

那么,我现在该怎么办?CakePHP 的日志目录只显示一个名为“empty”的空文件。我希望有人能给我一个提示,我该如何解决这个问题。

PS:在安装 CakePHP 时,我收到以下错误,我认为可以忽略,因为它继续安装: Cannot create cache directory /srv/data/.composer/cache/[...] , or directory is not writable. Proceeding without cache