问题标签 [cakephp-3.x]
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.
json - cakephp 3.x _serialize 密钥不起作用
我试图从 cakephp 3.1 控制器函数返回 json。我的问题是,无论我对 _serialize 标志做什么,响应总是缺少视图模板文件。
在蛋糕文档中,它说如果您不需要使用模板来格式化响应,则设置 _serialize 标志。查看 _serialize 上的蛋糕文档
下面是初始化进程的客户端的Javascript
处理来自客户端的 json 的控制器代码。
包含或删除 _serialize 标志时收到的错误消息。
“模板文件“Pages\json\module1\activity4.ctp”丢失。”
有人对此机制有任何见解吗?我发现的解决方法是包含模板文件......但这意味着我将不得不生成几十个基本上为空的模板文件来处理生成此调用的所有位置。
请问有什么帮助吗?
cakephp - Cakephp 3 - belongsToMany 关联的通过表中的附加 ID 字段
我一直在研究一个 CakePHP 3 项目,其中包含一些更复杂的部分,而且框架的官方文档似乎没有给我正在寻找的答案。需要做以下事情:
用户可以属于多个项目。在每个项目中,属于当前项目的每个用户都可以访问应用程序的不同部分,这由一个名为 Resources 的表处理,该表存储资源 ID。
所以简而言之,用户 A 可以访问项目 A 和项目 B 中不同数量的资源。
我设置了以下关联:
- 用户通过 UsersProjects 属于ToMany Projects
- 用户通过 UsersResources 属于ToMany Resources
在 users_resources -table 我有以下字段:
用户 ID | 资源 ID | 项目编号
project_id -field 被添加到表中以使用户的资源项目特定。
关联配置如下:
用户表:
资源表:
用户资源表:
在 UsersResourcesTable 类中还实现了一个 buildRules 函数来帮助数据完整性:
数据保存如下:
patchEntity后的实体数据:
当数据以项目 id 2 保存时,保存按预期工作。当我保存相同的数据但将项目 id 更改为 1 时(user_id和resource_id将保持不变),项目 id 为 2 的前一行将从表中删除。期望的行为显然是旧记录将保留在表中。我注意到,尽管在 UsersTable 的资源关联定义中添加一个值为 'append' 的 saveStrategy-option 将使保存正确完成(不会删除 project_id 为 2 的行)。但是当我在使用附加策略时尝试保存现有记录时,保存将失败(保存结果为假)。
所以如果我使用替换策略,以前的数据会被删除,如果我使用追加策略,现有行的更新将导致蛋糕的错误。我认为由于唯一规则,在规则检查期间会引发错误。
我认为替换策略将是可行的方法,但似乎 project_id -field 值被忽略,并导致每当添加新行时将删除以前的数据(具有相同的 user_id 和 resource_id)不同的项目 ID。
所以我的问题是:
是否可以将第三个 id 字段添加到 belongsToMany-association 的槽表中,以便额外的字段也将被视为 id 字段,以便框架知道何时更新或插入记录到连接表?
这个想法是表中的所有三个字段都是唯一的。现在看来,框架丢弃了额外的字段,因此插入和更新无法按预期工作。或者数据库结构中是否存在需要修复的设计缺陷?
我宁愿坚持使用 CakePHP 约定,但似乎这种情况很难解决。任何指导表示赞赏!
cakephp - cakephp 3.x 中的多个前缀
在 cakephp 2.x 中,我们可以在 core.php 文件中配置多个前缀。喜欢
配置::write('Routing.prefixes', array('admin','blogger'));
但是在 cake php 3.X 中,目录结构发生了变化。没有core.php文件,那么我们如何在cakephp 3.x中配置多个前缀
cakephp - CakePHP 3- 在控制器中显示所有错误和 buildRules 消息
我有这个 Model/Table/UsersProfilesTable.php,我在其中指定了所有错误消息和 buildRules。
我的目的是在尝试保存数据时列出控制器中的所有验证错误。
代码如下所述。
任何人都可以想出一种方法来列出所有验证错误,包括 buildRules 方法中指定的消息吗?
任何帮助,将不胜感激。提前致谢!
和平!xD
php - 如何在 CakePHP 3.2 中设置条件?
在 CakePHP 3.2 中从数据库中获取数据时,如何将条件放入查询中。这里我实现了一个分页,很容易通过 WHERE 条件(见下面的代码)。
在上面的代码中我使用了分页,所以我很容易传递条件和其他东西,比如字段、顺序等。
如果分页不存在,那么代码是什么?这里我只需要从数据库中取数据,然后给出条件和其他东西。在 CakePHP 2.6 中,代码如下所示。
在 CakePHP 3.2 中有没有其他方法可以像上面那样(没有分页)?
欢迎任何建议。先感谢您。
php - 如何在 CakePHP 3.2 中获取上次运行查询?
我想在 CakePHP 3.2 中获得最后执行的查询,我之前在 CakePHP 2.x 中使用过以下内容:-
我如何在 CakePHP 3.x 中做到这一点?
php - 在 CakePHP 3.0 中,实现不遵循 CakePHP 命名约定的控制器和函数的最佳方式是什么?
Android 对其 App Links 验证有一个命名约定,这在 CakePhP 中是不允许的。Android 强制您的应用链接验证如下:
www.exampledomain.com/.well-known/assetlinks.json/
PhP 不允许使用名为“.WellKnownController”的类,也不允许使用名为“assetlinks.json”的函数。那么如何让我的 CakePhP 3.0 网站响应这篇文章呢?
php - CakePHP 3 错误:SQLSTATE [42000]:语法错误或访问冲突:1064
我收到此错误:
这是给出此错误的 SQL 查询:
我启用了 quoteIdentifiers config\app,但它导致了这个新错误:
查询变为:
我认为它将“Col from Colleges”作为关键字“COL”,但我不确定。如何解决这个问题?
这是生成 MySQL 查询的 CakePHP 代码:
php - CakePHP 3:不存在的函数缺少路由错误
为什么我会为不存在的函数收到“缺少路线”错误。
在Reservations
控制器内部,我有add
一个参数的函数:
匹配路线:
当我访问任何页面时,我看到以下错误:
http://i.stack.imgur.com/ESX5I.jpg
错误消息说:
错误:找不到匹配“数组('controller' => 'Reservations', 'action' => 'add', 'plugin' => NULL, '_ext' => NULL, )”的路由。
...这很奇怪,因为我没有add()
没有参数的函数,相反,我有add($carid)
一个参数的函数。
但是当我添加那条路线时,一切正常:
到底是怎么回事?