小编rrd*_*rrd的帖子

将cakephp从2.2版升级到2.3时会涉及哪些步骤?

我想将我的CakePHP应用程序从2.2版升级到2.3版,我该怎么办?

是否足以覆盖lib文件夹?我检查了差异并注意到app文件夹中也有变化,所以不清楚是否需要更新这些变化.

迁移指南没有关于如何执行升级的信息.

cakephp

12
推荐指数
1
解决办法
4810
查看次数

如何根据相关模型的条件进行过滤?

我在用户和联系人上有一个belongsToMany关联.

我想找到给定用户的联系人.我需要类似的东西

$this->Contacts->find()->contain(['Users' => ['Users.id' => 1]]);
Run Code Online (Sandbox Code Playgroud)

该烹饪书讲述了包含条件,定制查找器方法和通过关联键唱歌,但我没有找到如何将这些放在一起.

cakephp associations query-builder conditional-statements cakephp-3.0

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

cakephp 3显示没有时间的日期

CakePHP 3:我有一个数据库字段是DATE(不是DATETIME,也不是TIMESTAMP)

当我显示

echo $contact->date;
Run Code Online (Sandbox Code Playgroud)

它将显示类似2014. 01. 06. 0:00的内容.如何隐藏小时和分钟?

我试过了

print $this->Time->format($contact->date, 'Y-m-d');
Run Code Online (Sandbox Code Playgroud)

但是我得到了2014-0-6

如何获得年月日?

RRD

cakephp cakephp-3.0

9
推荐指数
2
解决办法
9175
查看次数

在控制器中使用cakephp helper

我有一个帮助器,可以将不同的字符串更改为日期.由此+5成为2012-11-17(从今天起5天),5成为2012-11-05(今年,本月,给定日).

我想在我的控制器中使用相同的东西.

App::uses('EasyDateHelper', 'View/Helper');
App::uses('View', 'View');
$this->View = new View($this->Controller);
$easyDate = new EasyDateHelper($this->View);
Run Code Online (Sandbox Code Playgroud)

这段代码效果很好,但我想知道是否有更好/更简单的方法.

cakephp

7
推荐指数
1
解决办法
6714
查看次数

JavaScript检查是否定义了属性

检查是否定义了像obj.prop.otherprop.another这样的对象属性的推荐方法是什么?

if(obj && obj.prop && obj.prop.otherprop && obj.prop.otherprop.another)
Run Code Online (Sandbox Code Playgroud)

这很好用,但足够难看.

javascript

6
推荐指数
1
解决办法
177
查看次数

cakephp 3在afterSave中的原始数据

有没有办法在afterSave中访问原始数据?我想记录重要数据的变化.

使用$ entity-> isNew()我可以检查它是插入还是更新,但我怎样才能得到改变的内容?

cakephp cakephp-3.0

4
推荐指数
2
解决办法
2988
查看次数

CakePHP 3事件

如果特定的find方法在我的Contacts表上有返回值,我想在Notifications表中创建一个条目.

所以在ContactsTable中我创建了一个事件.

use Cake\Event\Event;

public function checkDuplicates()
{
    //... some code here
    $event = new Event('Model.Contacts.afterDuplicatesCheck', $this, [
            'duplicates' => $duplicates
        ]);
    $this->eventManager()->dispatch($event);
}
Run Code Online (Sandbox Code Playgroud)

我在/ src/Event创建了ContactsListener.php

namespace App\Event;

use Cake\Event\Event;
use Cake\Event\EventListenerInterface;
use Cake\Log\Log;

class ContactsListener implements EventListenerInterface
{

    public function implementedEvents()
    {
        return [
            'Model.Contacts.afterDuplicatesCheck' => 'createNotificationAfterCheckDuplicates',
        ];
    }

    public function createNotificationAfterCheckDuplicates(Event $event, array $duplicates)
    {
        Log::debug('Here I am');
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的NotificationsTable.php中,我有以下代码.

public function initialize(array $config)
{
    $this->table('notifications');
    $this->displayField('id');
    $this->primaryKey('id');

    $listener = new ContactsListener();
    $this->eventManager()->on($listener);
}
Run Code Online (Sandbox Code Playgroud)

我想这部分是问题,因为我从来没有得到过日志条目.这本食谱还不够清楚,我发现的所有代码与食谱描述的内容不一样,即使对于蛋糕3也是如此.

我应该如何以及在哪里附上听众?

events cakephp-3.0

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

自定义查找器与关联定义匹配?

我有两个模型:联系人和具有belongsToMany关联的组.

我想只获得联系人可访问的组.为此,我有一个自定义查找器.

public function findAccessible(Query $query, array $options){
    return $query
            ->where(['admin_user_id' => $options['User.id']])
            ->orWhere(['public' => true])
            ->matching('Users', function($q) use ($options){
                return $q->orWhere(['Users.id' => $options['User.id']]);
            });
}
Run Code Online (Sandbox Code Playgroud)

所以我可以打电话跟随,我会得到我想要的.

$accessibleGroups = $this->Contacts->Groups->find('accessible', ['User.id' => $this->Auth->user('id')]);
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一个包含,它将回馈所有组,而不仅仅是可访问的组.

$contact = $this->Contacts->get($id, [
        'contain' => ['Groups']
    ]);
Run Code Online (Sandbox Code Playgroud)

如何限制包含可访问?

我无法将自定义查找器添加到表关联定义的finder属性中,因为我无法在那里传递$ options.或者我可以吗?

cakephp-3.0

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

如果debug为false,则找不到页面错误

在我的开发服务器上/pages/help渲染就好了.但是在制作中它会呈现一个未找到的页面.

所有文件都是相同的,其他一切都有效.

更新:唯一的区别是生产调试是false并且开发调试是真的.我可以通过更改调试值来重现问题.

这是堆栈跟踪

2015-07-08 10:36:44 Error: [Cake\Network\Exception\NotFoundException] Not Found
Request URL: /pages/help
Stack Trace:
#0 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/View/View.php(833): include()
#1 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/View/View.php(793): Cake\View\View->_evaluate('/home/reseller1...', Array)
#2 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/View/View.php(464): Cake\View\View->_render('/home/reseller1...')
#3 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/Controller/Controller.php(582): Cake\View\View->render('help', NULL)
#4 /home/reseller10/domains/1108.cc/private_html/sanga/src/Controller/PagesController.php(63): Cake\Controller\Controller->render('help')
#5 [internal function]: App\Controller\PagesController->display('help')
#6 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/Controller/Controller.php(411): call_user_func_array(Array, Array)
#7 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(114): Cake\Controller\Controller->invokeAction()
#8 /home/reseller10/domains/1108.cc/private_html/sanga/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\PagesController))
#9 /home/reseller10/domains/1108.cc/private_html/sanga/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#10 {main}
Run Code Online (Sandbox Code Playgroud)

cakephp-3.0

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