标签: cakephp

如何在默认的不同位置显示CakePHP输入验证错误?

假设我在视图中看到这样的字段:

<li class="bigfield">
  <?php echo $form->input('phone', array(
      'placeholder' => 'Phone',
      'label' => false,
      'between' => '<br />'
  )); ?>
</li>
Run Code Online (Sandbox Code Playgroud)

如果我在此字段上有验证规则并且验证失败,我会看到以下HTML:

<li class="bigfield">
  <div class="input text required error">
      <br>
      <input name="data[Appointment][email]" type="text" placeholder="Email" 
             maxlength="45" value="" id="AppointmentEmail" class="form-error">
      <div class="error-message">Please enter a valid email address</div>
  </div>
</li>
Run Code Online (Sandbox Code Playgroud)

我很喜欢做这样的事情的错误消息的div移动到页面的整个不同的组成部分,而然后用相同<LI>与字段本身里面有它.这样做最直接的方法是什么?

validation cakephp

20
推荐指数
2
解决办法
5万
查看次数

CakePHP:在使用find方法构建查询时,如何使用"HAVING"操作?

我正在尝试使用CakePHP paginate()方法在SQL查询中使用"HAVING"子句.

经过一些搜索,看起来这是无法通过Cake的paginate()/ find()方法实现的.

我的代码看起来像这样:

$this->paginate = array(
        'fields' => $fields,
        'conditions' => $conditions,
        'recursive' => 1,
        'limit' => 10, 
        'order' => $order,
        'group' => 'Venue.id');
Run Code Online (Sandbox Code Playgroud)

其中一个$字段是别名"distance".我想在距离<25时添加查询(例如,距离<25).

到目前为止,我已经看到了两个解决方法,不幸的是,这两个方法都不适合我 我见过的两个是:

1)在"group"选项中添加HAVING子句.例如'group' => 'Venue.id HAVING distance < 25'.当与分页结合使用时,这似乎不起作用,因为它会混淆执行的初始计数查询.(即尝试SELECT distinct(Venue.id HAVING distance < 25)哪个显然是无效的语法.

2)在WHERE条件之后添加HAVING子句(例如WHERE 1 = 1 HAVING field > 25)这不起作用,因为看起来HAVING子句必须 Cake生成的查询中的WHERE条件之后放置的组语句之后.

有没有人知道使用CakePHP的find()方法做到这一点的方法?我不想使用query(),因为这会涉及大量的返工,也意味着我需要实现自己的分页逻辑!

提前致谢

mysql cakephp cakephp-2.x

20
推荐指数
1
解决办法
2万
查看次数

手动安装cakephp 3,没有作曲家

我需要以老式的upload-unzip-run方式安装CakePHP 3 .

我从下载的档案文件的CakePHP/CakePHP的/标签不包含默认文件夹一样webroot,Model等等,这意味着它是不完整的.

官方文档不涉及此.这是我发现的相关Github问题,但该人最终仍在使用Composer.

还有cakephp/app,似乎包含那些丢失的文件,但是在cakephp/cakephpcomposer.json中没有提到,即使我下载它,我也不知道如何合并软件包.

请帮忙

php installation cakephp composer-php cakephp-3.0

20
推荐指数
2
解决办法
2万
查看次数

CakePHP网站手机版

我已经开发了一个完整的CakePHP框架网站,我们想为移动设备(主要是iPhone/iPad)制作一个非常简单的网站版本.

有没有办法使用现有网站的新子域(例如mobile.mywebsite.com)来呈现特定的视图?我想避免复制和简化当前的一个以匹配新的要求.我不想在每次需要更改控制器操作时"重新开发"新的CakePHP网站并进行两次更改.

subdomain cakephp mobile-website

19
推荐指数
3
解决办法
2万
查看次数

将通知推送到客户端浏览器

我想创建一个应用程序,当超级用户点击链接时,用户应该获得通知,或者更确切地说是pdf等内容,以便他们在屏幕上访问.

使用案例:当教师想要与学生分享PDF时,他应该能够通知学生可下载的PDF文件,并且必须提供链接以执行相同的操作.

javascript php ajax jquery cakephp

19
推荐指数
5
解决办法
3万
查看次数

在Ubuntu 10.4中运行CakePHP时遇到文件权限错误

我已经使用以下步骤安装了CakePHP 2.0框架:

1. Start the terminal
2. sudo mkdir /var/www/cakephp
3.sudo cp -r ~/cakephp/* /var/www/cakephp
Run Code Online (Sandbox Code Playgroud)

更改tmp文件夹permisssion

4. sudo chmod -R 777 cakephp/app/tmp
Run Code Online (Sandbox Code Playgroud)

启用mod-rewrite

5. sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

打开文件/ etc/apache2/sites-enabled/000-default并更改AllowOverride NoneAllowOverride All

6. sudo vim /etc/apache2/sites-enabled/000-default
Run Code Online (Sandbox Code Playgroud)

重启Apache

7. sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

我打开浏览器并键入地址http:// localhost/cakephp /并且我解决了这个错误消息:

警告:_cake_core_缓存无法写入"cake_dev_en美"到文件缓存在/ var/WWW /cakephp/lib/Cake/Cache/Cache.php在线310
警告:_cake_core_缓存无法写入"cake_dev_en美"来文件缓存在/var/www/cakephp/lib/Cake/Cache/Cache.php在线310
警告:在/ var/WWW/CakePHP的/应用程序的/ tmp /缓存/永久/不可写在/ var/WWW/cakephp中/ LIB /蛋糕/缓存/发动机/ FileEngine.php行320
警告:在/ var/WWW/CakePHP的/应用程序的/ tmp /缓存/模型/是不是在/ var/WWW/CakePHP的/ lib目录/蛋糕/缓存/发动机可写/ FileEngine.php行320
警告:在/ var/WWW/CakePHP的/应用程序的/ tmp /缓存/是不是在/ var/WWW/CakePHP的/ lib目录写入/蛋糕/Cache/Engine/FileEngine.php行320

cakephp ubuntu-10.04

19
推荐指数
1
解决办法
5万
查看次数

找到id不在id数组中的位置

要查找其值等于id数组的id的id:

$this->YourModel->find('all', array(
    'conditions' => array(
        "YourModel.id" => array(1, 2, 3, 4)
    )
));
Run Code Online (Sandbox Code Playgroud)

我怎么能做相反的事情,找到ids与ids数组不同的元素?

cakephp cakephp-2.0

19
推荐指数
1
解决办法
3万
查看次数

CakePHP错误:无法配置会话,设置session.auto_start失败

我收到这个错误:

Error: [CakeSessionException] Unable to configure the session, setting session.auto_start failed.

我正在使用Cakephp 2.2.4.

编辑

看来这家伙有同样的问题:现场网站上的Cakephp Session错误并使用它

if(!isset($_SESSION)) session_start(); 
Run Code Online (Sandbox Code Playgroud)

内部修复错误的beforefilter方法AppController.

所以我的问题是:为什么会这样?一切都工作正常,然后突然出现这个错误.另外我已经意识到该文件夹app/tmp/sessions是空的,我已将会话配置为由Cake(in Config/core.php)处理.

php session cakephp cakephp-2.2

19
推荐指数
4
解决办法
1万
查看次数

你如何获得CakePHP 3.0中的最后一个插入ID?

使用CakePHP 3.0测试版似乎是一个简单的问题,但我搜索了文档并找不到任何东西.使用$ this-> Model-> save()插入新记录后,我想获取新创建记录的auto_increment主键ID.

使用Cake 2.x,我可以做到:

$record_id=$this->ModelName->id;
Run Code Online (Sandbox Code Playgroud)

要么

$record_id=$this->ModelName->getLastInsertID();
Run Code Online (Sandbox Code Playgroud)

然而,这些似乎都不适用于CakePHP 3.0.

谢谢

cakephp cakephp-3.0

19
推荐指数
3
解决办法
3万
查看次数

带有htaccess的CakePHP子域

我在其他应用程序的htaccess文件中使用了以下规则,将用户从文件夹重定向到子域,但在访问该子域时从该文件夹加载内容.

# REWRITE SUBDOMAIN TO FOLDER
RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]

# REWRITE FOLDER TO SUBDOMAIN
RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

所以,如果我去:http://cameron.com/admin我最终http://admin.cameron.com/

但内容是从中加载的 http://cameron.com/admin

但是这对CakePHP 2.x来说不起作用,因为它的重写显然......

在我的htaccess文件中/app/webroot我有:

<IfModule mod_rewrite.c>

    RewriteEngine On

    # CAKEPHP RULES
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]

    # REWRITE SUBDOMAIN TO FOLDER
    RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
    RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]

    # REWRITE FOLDER TO SUBDOMAIN
    RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
    RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]

</IfModule> …
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite cakephp

19
推荐指数
1
解决办法
2097
查看次数