问题标签 [cakephp-2.4]

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 投票
2 回答
393 浏览

php - cakephp 2 $this->模型未设置

我正在开发 Cake 2.4,如果我在控制器中调试 $this,则 $this->Model 未设置但应该设置。

控制器:CustomersController(.php)

型号:CustomerModel(.php)

由于命名约定是正确的,我不知道问题出在哪里。

相关代码:

0 投票
2 回答
2191 浏览

php - 部署 cakephp 应用程序时设置文件夹权限

我的 cakephp 应用程序依赖于app/webroot/img/product_images现有且可写的目录。

现在我确保该文件夹存在一个.empty文件,因此 git 将跟踪空目录,但是当我将我的 repo 克隆到新服务器时,我必须记住手动 chown/chmod 文件夹。

CakePHP 或纯 PHP 中是否有任何方法可以自动检查并设置此文件夹的权限?

0 投票
1 回答
593 浏览

cakephp - requestAction 中的分页

我正在构建一个动态视图 ( Page),它由多个名为 via 的元素(小部件)组成$this->element('messages_unread')。其中一些元素需要与页面模型无关的数据。
在现实生活中的话:我的用户将能够通过从众多元素中进行选择来构建他们自己的页面(“前 5 个帖子”、“10 条未读消息”等......)

我通过从元素内部调用来获取数据,$this->requestAction(array('controller'=>'events','action'=>'archive')每个元素的 url-variables 不同。

我知道这requestAction()是昂贵的事实,我计划通过适当的缓存来限制成本。

实际问题:
我的问题是分页。当我在Page视图中并在页面视图中调用requestAction('/events/archive')PaginatorHelper 时,将不知道Event模型及其分页器变量$this->Paginator->next()等......将不起作用。
如何实现正确的分页?我试图通过调用来设置模型,$this->Paginator->options(array('model'=>'Event'))但这不起作用。
我是否可能需要在中返回自定义定义的分页变量,requestAction从而构建我自己的?

还是有另一种甚至可以避免的方法requestAction()?请记住,请求的数据与页面无关。

亲切的问候,巴特

[编辑] 我的临时解决方案,但仍对评论/解决方案开放:
在 requestedActionEvent/archive中,返回分页器变量以及如下数据: return array('data'=>$this->paginate(), 'paging' => $this->params['paging']);

0 投票
2 回答
1296 浏览

php - PHP isset 返回 true 但应该为 false

我的项目在 cakePHP 中,但我认为这是我误解的原生 PHP 的一个方面。

afterFind($results, $primary = false)AppModel. debug($results);如果我得到一个这样的数组,在一个特定的发现上

在我的afterFind我有一些这样的代码:

查找的结果来自我的Service模型,因此插入该 for$this->name并检查if(isset($model['Service'][0]))应该返回 false,但它返回 true?if(isset($model['Service']))按预期返回 false。

我收到以下 PHP 警告:

非法字符串偏移“服务”

那么这里发生了什么?if(isset($model['Service'][0]))如果返回false ,为什么返回if(isset($model['Service']))true?

更新:

我仍然不知道我原来的问题的答案,但我通过首先检查 $results 是否是一个多维数组来解决它

if(count($results) != count($results, COUNT_RECURSIVE))

0 投票
1 回答
934 浏览

php - 无法运行 cakephp 2.4.0 - 尝试完成教程时出现致命错误

我正在尝试按照此处找到的 cakephp 教程的说明进行操作:http: //book.cakephp.org/2.0/en/getting-started.html

我将 CakePHP 文件上传到我的网络服务器,使用 MySQL 工作台创建数据库,并创建 database.php 并将其更新为指向我的 MySQL 服务器。

在这一点上,听起来我应该能够在浏览器中打开网站并看到一些东西,但是我得到了这些错误(我已经删除了完整路径):

我尝试将位于 /caketut/lib/Cake 中的 Cache 文件夹和所有子文件夹/文件的权限设置为 0776,这将删除除此之外的所有错误:

我尝试进行搜索,但未能找到解决方案。我真的很感激任何帮助!

0 投票
2 回答
104 浏览

mysql - 将 10+ 个字段与 TranslateBehavior 一起使用(导致 10+ 个内部连接)返回 SQL 错误

我正在建立一个项目,我想在其中使用CakePHP 的 Translate Behavior

在我达到我希望它翻译的 10 个字段之前,一切似乎都运行良好。Translate Behavior 为它试图检索的每个字段创建一个 INNER JOIN - 我相信这是导致此错误的原因(仅在 10+ 时发生):

SQLSTATE[42000]:语法错误或访问冲突:1104 SELECT 将检查超过 MAX_JOIN_SIZE 行;检查您的 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET MAX_JOIN_SIZE=# 如果 SELECT 没问题

两个问题:

1)我尝试通过运行列出的两个 SQL 命令来修复它,但仍然没有运气 - 我怎样才能让它工作?

2) 如果要为每个字段创建一个 INNER JOIN,那么拥有 10-20 多个翻译字段是否理想/可以/可接受?我是否应该重新考虑使用这种行为并自己创造一些东西?

0 投票
4 回答
20898 浏览

php - 空选项的 cakePHP 值

有没有办法在 FormHelper 生成的选择下拉列表中传递空选项的值?

我正在创建这样的输入:

echo $this->Form->input('supplier_id', array('empty'=>true));

像这样从控制器自动提供的值

并且选择框是这样创建的:

但我希望第一个选项(空选项)的值为 0 而不是 '' 可能吗?或者我应该$suppliers用类似的东西修改控制器中的数组

并从 FormHelper 输入中删除空选项?

0 投票
2 回答
3006 浏览

php - Auth 组件未在 cakephp 2.4 中自动检查密码

我下载了 cakephp 的最新版本,即 cakephp 2.4。

当我使用 Auth 组件时,它不检查密码。

当我看到 sql dump 它显示

它应该是

我的 Auth 组件代码是

0 投票
2 回答
4925 浏览

cakephp - cakephp 中的 loginRedirect 无法正常工作

在我们的 CakePHP 应用程序中,我们尝试使用 Auth 组件进行登录。

这是应用控制器:

这是用户控制器:

然后按照以下步骤操作:

  1. 在浏览器中输入的 URL 为http://localhost/cakephp/
  2. 从 Homepage home.ctp,导航到http://localhost/cakephp/users/login登录,使用Login按钮
  3. 输入用户名和密码,然后点击登录按钮
  4. 然后它重定向到上一个访问home.ctp的页面,而不是AppController.

第二次尝试:

  1. 参观过http://localhost/cakephp/users/login/直接从 URL 字段
  2. 然后输入登录凭据,然后它重定向到正确的页面,如AppController.

为什么 Auth 组件的行为是这样的.....

0 投票
2 回答
1145 浏览

cakephp - 如何在 cakephp 2.4 中实现 JsonP

我刚刚升级到 cakephp 2.4.1,因为它现在支持 JsonP。我之前在我的 ajax 跨域代码中遇到了一个丢失的回调错误。然而,文档没有提到任何额外的步骤需要实现这一点,所以我认为它应该会发生,但我得到了和以前一样的错误。

我需要一段额外的代码来发送回调吗?

我的控制器

}

ajax代码