问题标签 [cakephp-3.5]
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.
php - 使用 CakePHP 3.5 的 $this->response->withFile() 函数返回一个 JPG 文件
我正在尝试读取文件并使用 CakePHP 3.5 中的控制器将其返回,但我运气不佳。
我在 /webroot 目录中有一个具有 777 权限的快速测试文件,并尝试使用以下代码返回它:
当我点击那个控制器(即/orders/thumbnail/KC9BW0/1)时,我在浏览器中得到的只是一个带有“text/html”类型的零字节页面。
我一般在 StackOverflow 或网络上找不到任何东西,给出了一个使用 3.5 文档中推荐的 withFile() 函数的简单示例。我错过了什么?
php - CakePHP3.5 加载不同的模板文件
在我的PhotoalbumsController中,当调用动作imgToAlbum时,我试图加载不同的布局。
我收到此错误:
错误:找不到 PhotoalbumsController::imgToAlbum() 的视图。
确认您已在以下路径之一中创建文件:“Admin/Photoalbums/img_to_album.ctp”
我也试过$this->viewBuilder()->setTemplate('ajax');
and $this->viewBuilder()->template('ajax');
。但这些也不起作用。
我在我的AppController中为我的后端使用了相同的技巧,即,这有效:
我在这里想念什么。
validation - CakePHP 3.5 如何根据另一个字段的值验证一个空字段或非空字段?
我正在使用 CakePHP 3.5.5。
我对自定义验证规则感到震惊。在我看来,我有国家和州的领域。如果国家字段的值为 US,那么我们将 state 字段设为必填,否则我们不需要。我在我的 UsersTable.php 中放置了一个自定义验证规则,如下所示:
并创建了 validate_state 函数,如下所示:
但它根本不起作用。如果我使用此规则,它唯一要做的就是显示“此字段不能留空”消息。我知道如果您为字段创建了验证器规则,CakePHP 会假设它自己运行notEmpty 。但我的问题是在检查 notEmpty 方法之前检查另一个我需要使用自定义函数的字段的值之前,我不能规则字段值 true 或 false。但在我的情况下,如果我不使用 notEmpty 方法,它既不会进入自定义函数 validate_state 也不会显示我在此规则中使用的自定义消息。
在将表单请求数据发送到验证器之前,您是否知道一种更好的方法来做到这一点?
cakephp - 如何通过 belongsToMany 关联的翻译进行过滤?
我想在关联的 belongsToMany 关系中查询翻译。根据文档和这个问题,应该可以在翻译中查询关联。我尝试了以下(简化)代码:
标签和活动具有多对多关系。
活动:
标签:
活动标签:
但是,我得到以下生成的 SQL:
这导致我出现以下错误:
QLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列'Tags_name_translation.content'
缺少以下联接:
现在我的问题/编辑:
为了生成缺少的连接,我缺少什么来配置 CakePHP?我的意图是通过翻译的标签过滤活动。它适用于非翻译。
php - CakePHP 3.6 更新后的无限登录循环
在我的应用程序中,我正在使用基于 CakePHP。当我使用 URL /manager/login(对应于 LoginController,Managerr 前缀)登录时,一切正常。
当我注销或使用 /manager 时,结果如下:
查询字符串中的无限循环和服务器返回 404.15 错误。
3.5 中使用的相同配置
没有更改任何路由,并且在没有前缀的控制器中登录/注销操作有效。
谢谢你的帮助。
cakephp-3.0 - CakePHP 3.6 Query Builder 复杂的 OR 条件问题
我正在尝试使用具有复杂嵌套 AND 和 OR 条件的查询生成器来构建查询。这是我到目前为止所写的。
这将生成如下查询
我想生成一个带有嵌套 AND & OR 条件的查询,如下所示
任何人都可以帮助解决如何在 CAKEPHP 3.0 查询生成器中实现这一目标吗?
php - PHP 垃圾收集器不断删除我的会话
问题:
我有一个使用 PHP 会话允许用户登录的网站。它工作正常。但是会话过期太快,以至于 1 分钟的不活动将注销用户。
我的环境:
php版本:7.1
服务器:NGINX
框架:CakePHP 3.5
到目前为止我做了什么?
我在 StackOverflow 上完成了每一个解决方案或我得到的任何搜索结果。我在 php.ini 和 CakePHP 配置中都延长了会话超时。
解决方案
经过两三天的研究,我找到了解决办法。在我的 php.ini 中,我找到了一个名为的配置,并为此设置了session.gc_probability
值0
。现在我的会话永远不会过期,除非用户故意注销。
现在我当前的问题是,我不希望我的session.gc_probability
配置为零,因为它不会收集任何垃圾(对此不太确定。如果此信息错误,请纠正我。)。这将导致会话保留数月或数年,这对于服务器来说是真正的垃圾。
我得到了从这里session.gc_probability
给零值的想法
我的配置到底有什么问题?是什么导致垃圾收集很快删除我的会话?session.gc_probability
是 1 和session.gc_divisor
1000。我认为概率为 1/1000 的进程不应该每 1 或 2 分钟启动一次。
cakephp - CakePHP 3.5 写和读 Cookie
首先,我已经尝试了这两个链接中提供的这两种解决方案
如何在 CakePHP 3.5 的控制器级别创建 cookie?
但是,它只是不工作。我提供了一个示例,说明我如何尝试编写和读取 cookie。但它们都不起作用。
写饼干
阅读饼干
有人能指出我在 CakePHP 3.5 中写入和读取 cookie 的正确方向吗?
cakephp - CakePHP 3.5 编写和加密 Cookie
背景:我刚刚升级到 CakePHP 3.5.17。
我有一个写 cookie 的代码。但是,似乎我缺少一些加密它的步骤。有人可以阐明缺少的步骤在哪里吗?目前,网络浏览器正在获取 cookie 的值,但未加密。注意我还在 app.php 上设置了 cookieKey
我还在下面提供的链接中包含了这些步骤
https://book.cakephp.org/3.0/en/development/application.html#adding-http-stack
进一步调试后,我注意到在 EncryptedCookieMiddleware 类中。它说明请求数据中的 Cookie 将被解密,而响应标头中的 cookie 将自动加密。如果响应是 Cake\Http\Response,则 cookie 数据集withCookie()
和 `cookie()` 也将被加密。但对我来说它不会自动加密?
cakephp - CakePHP 3.5 使用动态名称加密 cookie
我的应用程序有一些带有动态名称的加密 cookie。我已经实现了用于加密的中间件,它对于那些具有静态名称(如 xxx、yyy 和 zzz)的 cookie 工作正常。
但是,我不确定如何使用动态名称加密 cookie。例如,如果我的 cookie 名称是“3HA8_settings”,其中前缀 3HA8 是某个产品 ID,我如何在 Application.php 中声明或访问 cookie 名称以进行加密。
任何人都可以阐明如何实现这一目标吗?
如前所述,我已阅读下面提供的中间件链接,但它并没有真正帮助我解决上述问题。我一定在某个地方错过了什么。