问题标签 [cakephp-2.3]

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

php - PHP5.4 和 CakePHP2.3 兼容性

我有一个用 CakePHP2.3 编写的项目,我正在考虑将 PHP 升级到 5.4 版。我试图保持代码干燥,PHP5.4 的特征可以帮助解决这个问题。我当前的 PHP 版本是 5.3.3。

在我开始在服务器上安装东西之前,我想知道这是否是个好主意。

  • 您是否一起使用过 CakePHP2.3 和 PHP5.4,如果是,您是否遇到过兼容性问题?

  • 您是否使用过 PHP5.4 中的新特性功能,如果是,您是否有任何问题?

0 投票
3 回答
2685 浏览

cakephp - 在 CakePHP 中的 URL 上强制使用语言前缀

我想强制我的网站的 URL 总是有一个语言后缀。

因此,如果他们键入www.mysite.com它应该将他们带到www.mysite.com/en.

我有一个默认语言,所以如果这是他们第一次访问该网站,应该使用它。如果不是,我设置了一个可以使用的 Cookie……但是 - 我不知道在哪里使用它。

我考虑过检查 URL 中是否有“语言”参数,如果没有,则进行重定向,但是 - 这似乎有点矫枉过正 - 有没有更好的方法?我可以在路线中这样做吗?或引导?

0 投票
2 回答
2724 浏览

cakephp - 在 CakePHP 中翻译月-日组合

.po我可以使用我的文件翻译单个月份或日期:

但是,当我使用这样的日期格式时:

它不翻译 - 我假设是因为我每个月和每一天的翻译都在单独的行中。

通常我会做这样的事情:

但是,在 CMS 中,管理员可以将日期更改为他们想要的任何格式。所以,它可以是“j F,Y”或“Ymd”,或者......其他任何东西。

我想也许我可以做一个助手或其他东西,将日期分解成碎片,并返回 a 中的每个部分__(),但是 - 这似乎有点矫枉过正。是否有捷径可寻?

我在 AppController 中设置我的语言环境:

0 投票
2 回答
469 浏览

cakephp - 如何在 CakePHP 中为空时保存 HasAndBelongsToMany (habtm) 数据

我在和之间有hasAndBelongsToMany关联。NodeNodeTag

当至少选择一个时,我的保存效果很好,但是 - 如果有以前的关联,并且他们尝试在没有选择的情况下保存,我的habtm表不会更新,因为它没有得到任何传递NodeTag

(我不确定这是否是因为我使用了 javascript 和自定义按钮,或者默认的 CakePHP 复选框是否做同样的事情)。

0 投票
2 回答
1290 浏览

cakephp-2.0 - 在多站点 CakePHP 2.3 安装中共享控制器、模型和视图

我正在创建一个 CakePHP 2.3 高级安装(几个应用程序-网站-共享一个相同的lib文件夹,所有蛋糕的核心文件都位于该文件夹中)。这没有任何问题,我只需在每个应用程序的 Config 文件夹中编辑core.php文件,这样它就知道在哪里可以找到蛋糕的文件。文件系统看起来像:

这些不同的应用程序实际上在某些方面是不同的(它们是不同的网站),但同时它们也有许多共同点(例如某些模型、控制器、功能......)。如果可能的话,我想做的是让这些应用程序也共享一堆控制器、模型等,这样我就可以把它们放在一个地方,而不是现在为每个应用程序复制它们。

我已经在 CakePHP 中看到了供应商插件的概念(我实际上在这些网站中使用插件,但是来自 /app/plugins 文件夹),但我不确定这是否适用于我的情况,或者我将如何设置到了。我想这个想法是在 [cake-core-files] 和 [websites] 的同一级别上拥有另一个文件夹(例如 [shared_objects]),但我不知道如何配置 cake 来做到这一点或如何从每个应用程序调用这些对象。

有任何想法吗?

编辑

根据下面的评论/回复,我正在尝试使用 bootstrap.php 中的 App:build() 函数来执行此操作,但我无法让它工作。这就是我所做的:

  1. 添加了一个新文件夹,我想在其中放置要在所有应用程序之间共享的内容:

    [root] [cake-core-files] [shared-stuff] --> NEW FOLDER [Model] [Config] [websites] [website-1] etc...

  2. 将模型User.php放入新文件夹[shared-stuff/Model]

  3. 在引导程序中添加了这一行:

    /li>
  4. 从其原始位置删除模型User.php [website-1/app/Model]

完成此步骤后,似乎可以正常工作,从[shared-stuff]文件夹中正确加载了模型 User.php (我已经测试了打印App::objects('Model');,列出了 User 模型)。但是,它实际上不起作用,当我在 login() 函数中从UsersController调用该模型时,登录不起作用(尽管我没有收到任何类型的错误,即使将调试设置为 2)。

此模型使用与默认配置不同的数据库配置(用户表位于与默认配置不同的数据库中)。我不知道这是否重要。

有一件事是肯定的,如果我将相同的 User.php 模型留在其原始位置([website-1/app/Model])它一切正常,包括登录,所以这是我如何尝试配置的问题所有这些共享的东西,而不是模型本身。

任何想法我做错了什么?

0 投票
1 回答
1868 浏览

cakephp-2.0 - CakePHP 2.3 添加新文件夹以加载模型不起作用

我在 bootstrap.php 中使用以下代码(如此所述)也从另一个文件夹加载模型:

似乎有效。我在该文件夹中有一个模型MyModel,我将其包含在我想像往常一样使用它的控制器中:

如果我打印App::objects('Model'),模型MyModel会显示在列表中,所以我假设它已正确加载。但是,当我尝试使用模型时(即$this->MyModel->find()它永远不会找到任何东西,它总是返回一个空数组。

请注意,如果我将相同的模型(MyModel)放在典型的模型文件夹(app/Model/)中,那么一切正常。

我缺少什么来完成这项工作?

编辑

好的,所以当模型放在app之外的那个文件夹中时,问题似乎出在与数据库的连接上。通过上面显示的代码,Cake 找到了模型。但是,当我执行find()时,我得到数据源的缺失表错误(在这种情况下为默认值)。

模型是否有可能没有加载正确的数据库配置,因为该配置位于app/Config文件夹中?如何使该模型加载该配置?如果我必须将该配置放在其他位置(可能在同一个外部文件夹中?)我可以这样做,但我如何告诉模型找到它?

编辑 2

我现在可以更好地看到问题所在。如果我将模型放在不同的文件夹中(除了app/Model)并使用App::build()设置新文件夹的路径,Cake 会找到它,毫无疑问(我使用App::objects('Model ')并且该模型与app/Model中的所有其他模型一起列出)。

然而,就好像 Cake 并没有真正阅读该模型类中的内容,或者至少不是所有内容。它似乎读取了$useDbConfig变量,但它忽略了$useTable和我在该模型中定义的任何函数。我的模型示例:

如果我执行$this->Usuario->find('all'),它会正确返回所有记录。但是,如果我调用$this->Usuario->createTempPassword(7)我会得到一个Database Error

我在同一个文件夹中有另一个模型(MyModel),带有$useTable = 'mytable'。如果我在其上执行find(),我会收到一条错误消息,指出无法找到mytable表。但是,如果我这样做$this->MyModel->useTable = 'mytable'那么它工作正常。

这怎么可能?这里发生了什么?

编辑 3

我只想补充一点,我已经进行了广泛的测试,问题很清楚:Cake“知道”模型在外部文件夹中(通过打印App::objects('Model')确认,模型在那里列出,如果我从该文件夹中删除它,则它不会列出)。但即使它知道它的存在,它也会忽略模型文件中的任何内容。我已经尝试了以下所有方法来加载模型,但都没有奏效。这是 CakePHP 中的错误吗?如果没有,我做错了什么?

0 投票
2 回答
665 浏览

cakephp - CakePHP:从表单助手中搜索日期

我使用表单助手来显示下拉选择日期。我的问题是,我无法将 ms sql 中的日期与表单数据进行比较。

我的观点 :

我的控制器

和 sql 转储

如您所见,日期格式('01'、'09'、2013)。但是当尝试转换使用这个

它显示错误:

和 sql 显示:

0 投票
1 回答
149 浏览

cakephp - 在 Zend Studio 中运行 CakePHP 测试

我可以从控制台运行我的 CakePHP 单元测试,但是如果我可以使用 Zend Studio 9 的内置特性来运行这些测试,那会容易得多。

我找不到任何关于如何在 Zend Studio 中运行 CakePHP 测试的提示。

这甚至可能吗?

0 投票
2 回答
369 浏览

validation - 如何从 CakePHP 的一个位置验证多个字段?

我想在一个地方验证多个字段。所以在一个表格中,我包含了 4 个字段,如下所示

  1. facebook_link
  2. 推特链接
  3. google_plus_link
  4. linked_in_link

用户至少键入以上任何一个字段。请帮助我获得解决方案,例如,用户在表单中键入任何链接。

0 投票
1 回答
254 浏览

cakephp - CakePHP 将分页生成的 URL 中的插件名称大写

我有一个名为“Admin”的插件。当我去/admin/users查看用户列表时,分页生成的链接看起来都像/Admin/users/index/page:2

如果我访问/admin/users/index/page:2(注意小写“a”),分页生成的链接再次正确。

关于如何解决这个问题的任何想法?

编辑:

我不确定为什么这被否决了。

我更新了上面的网址

删除这两行似乎解决了我的问题。