问题标签 [cakephp-3.7]
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.7 连接到控制器端的多个动态数据库?
我们正在使用连接管理器来完成这个过程,但我们无法实现我们需要的东西。我们尝试了不同的方法来无法连接到动态多个数据库。下面是我们正在使用的代码。
php 5.6 以上和 cakephp 3.7 版本。
我们需要的是求职者查询必须在公司级数据库中执行,但我们收到以下错误,提示连接仍在默认数据库中。
string - 如何在 cakephp3.7 中检索名称作为通过带有 blob 列的表单上传到 mysql 数据库的图像的字符串?
我正在用 cakephp3.7 构建一个电子商务网站,对于卖家发布他们的产品,他们需要上传要销售的文章图片,并且通过带有 Blob 列的表单。图像从视图上传得很好,但在数据库中,图像的真实名称没有出现,取而代之的是,在那个地方,所有图像的名称都是所有文章的“Blob”。现在的问题是,当我尝试从数据库中检索文章的图像(仅通过它的名称知道)到控制器以便将其发送到网站的前端时,它找不到图像,我我被严重卡住了!!!
但是当我到达 webroot/img 文件夹时,我找到了上传的图像,当我在前端视图中手动复制/粘贴名称时,图像会与文章的其他属性一起出现在前端。
这是应该从数据库中查找文章及其图像的控制器代码,要寻址的表是表“annonces”,存储图像的表的字段是“piece_jointe”:
这是将发布的文章转发到前端时的文章视图,我现在无法检索的字段是“piece_jointe”:
我想知道从 mysql 数据库中检索 Blob 类型“piece_jointe”的名称并在 cakephp 语法中使用它的方法:
因为当我将 $annonce->piece_jointe 变量替换为它的真实名称“macbook”时,这可以正常工作,例如:
php - MySQL 查询只给我 CakePHP 应用程序中的前 20 个结果
出于某种原因,我只从应用程序中显示的表中获得前 20 个结果。不管我如何调用数据库,我仍然只能得到前 20 个,即使数据库中的数量不止这些。CakePHP 中是否有我缺少的配置?任何帮助将非常感激。
我已经尝试过 CakePHP 文档中的示例。有多种方法可以写出来,我已经尝试过所有方法
这是使用 CakePHP 的 Paginator
这是一个没有 Paginator 的示例。不管怎样,我只得到前 20 条记录
cakephp - 如何使用 cakePHP 3.x 中使用准备好的语句定义的临时表
我正在使用 cakePHP 3.7
我想从控制器创建一个临时表,然后使用它(带有一些条件和连接)来搜索一些要显示的数据。
表结构目前是静态定义的,即它具有的字段是固定的,因此我能够定义一个实体或一组字段。但是,内容会因用户输入而异。这意味着我想用准备好的 SQL 语句定义表,我将绑定到用户输入的变量。
我知道如何处理准备好的陈述。
但是我还没有完全理解正确的方法是什么,让 cakePHP 创建我的临时表并为其加载模型。
我在CakePHP 3: Best Practice for Temporary SQL Tables上找到了@ndm 的有用答案,并且 在我所做的尝试中,我为表指定了 setTemporary(true)。
但是我不断收到“表不存在”异常,所以我想我没有正确构建项目类和代码。正如@ndm 建议的那样,我无法通过使用获得的查询来创建表
$schema->createSql($connection);
因为 sql 依赖于用户输入。
其他找到的 stackoverflow 答案是关于与 3.x 不同的 cakePHP (2.x) 的旧版本
有人可以给我一些更详细的提示,说明在我的 cakePHP 项目中创建和使用使用准备好的语句创建的临时表的方法是什么?
cakephp - Cakephp 3.7 - 实体可访问的属性元素已更改
$_accessible
键和值的 db 列的属性正在user_id
更改为(int)0 => false
from 'user_id' => true
,我不知道如何或为什么。因此,user_id
表单中的数据被忽略并且不是修补实体的一部分。
规格:Windows Server 2012 上的 CakePHP 3.7 和 MySQL 8。
Warehouses 实体最初是通过烘焙创建的,没有关联user_id
,但有关联company_id
。我能够在company_id
填充时保存/编辑记录。然后我手动将 user_id 字段添加到 DB 和所有相关的 Warehouses & Users 文件中。
我有验证逻辑可以适当地确定是否填充company_id
或user_id
填充。但是由于user_id
$_accessible 属性上的字段正在更改,因此当我尝试创建这样的记录时,我的记录是在没有 user_id 值的情况下创建的。
我的应用程序中有其他表,它们的类似设置运行良好(table.id、table.jobs_id、table.onsite_id),其中将填充 job_id 或填充 onsite_is。但永远不要都空着或都住满。
数据库表:
WarehousesTable.php
仓库.php
用户表.php
添加.ctp
在 Warehouses 控制器的 add 方法中,我调试了 ->newEntity()、->request->getData() 和 ->patchEntity()。该信息如下。
提前感谢您的帮助。非常感谢。
cakephp - CakePHP 3.7.1 DispatchShell 不执行迁移 Shell
我为 cakephp 应用程序 3.4.x 自定义了 cakephp 应用程序控制台/installer.php 文件,并且我正在尝试将其升级到 3.7.1,但是,以下代码不再有效...
它抛出以下错误
当我执行 bin/cake 迁移时,我得到
根据文档,它应该仍然可以工作,不是吗?
https://book.cakephp.org/3.0/en/console-and-shells/shells.html#invoking-other-shells-from-your-shell
任何想法为什么会发生这种情况?
database - cakephp 3 在文本框中预填充用户详细信息
我有更新的个人资料视图,我的表格可以正常工作。当我加载此表单时,我需要它应该预先填充数据库值而不是空的。我不想使用会话。我正在使用 cakephp 3.8 版本,在 update_profile.ctp 文件中我有以下代码
cakephp - CakePHP 3 - 迁移 - 指定文本列索引的键长度
我正在尝试向我的一张表添加索引,但出现以下错误
这是我正在使用的代码
指定密钥长度的选项是什么样的,我不确定用于密钥长度的数组密钥...
它应该看起来像这样,我不确定在问号的位置放什么
cakephp - CakePHP 3.x - viewBuilding()->setLayout('blank') 不工作
我正在尝试将布局设置为 blank.ctp 但它不起作用,我在 src/Template/Layout 中创建了一个 blank.ctp 但以下代码不起作用,因为没有显示 blank.ctp 文件,默认布局是。
我也尝试过不推荐使用的方法 layout('blank') 并且它也不起作用