本文整理汇总了PHP中CounterCachePost类的典型用法代码示例。如果您正苦于以下问题:PHP CounterCachePost类的具体用法?PHP CounterCachePost怎么用?PHP CounterCachePost使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CounterCachePost类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: testCounterCacheUpdated
/**
* Tests that counter caches are updated when foreign keys of counted records change
*
* @access public
* @return void
*/
function testCounterCacheUpdated()
{
$this->loadFixtures('CounterCacheUser', 'CounterCachePost');
$User = new CounterCacheUser();
$Post = new CounterCachePost();
$data = $Post->find('first', array('conditions' => array('id' => 1), 'recursive' => -1));
$data[$Post->alias]['user_id'] = 301;
$Post->save($data);
$users = $User->find('all', array('order' => 'User.id'));
$this->assertEqual($users[0]['User']['post_count'], 1);
$this->assertEqual($users[1]['User']['post_count'], 2);
}
开发者ID:hastapasta,项目名称:financereport,代码行数:18,代码来源:model_write.test.php
示例2: testToggleBoolFields
public function testToggleBoolFields()
{
$this->loadFixtures('CounterCacheUser', 'CounterCachePost');
$Post = new CounterCachePost();
$Post->unbindModel(array('belongsTo' => array('User')), true);
$true = array('Post' => array('published' => true, 'id' => 2));
$false = array('Post' => array('published' => false, 'id' => 2));
$fields = array('Post.published', 'Post.id');
$updateConditions = array('Post.id' => 2);
// check its true
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEquals($true, $result);
// Testing without the alias
$this->assertTrue($Post->updateAll(array('published' => 'NOT published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEquals($false, $result);
$this->assertTrue($Post->updateAll(array('published' => 'NOT published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEquals($true, $result);
$db = ConnectionManager::getDataSource('test');
$alias = $db->name('Post.published');
// Testing with the alias
$this->assertTrue($Post->updateAll(array('Post.published' => "NOT {$alias}"), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEquals($false, $result);
$this->assertTrue($Post->updateAll(array('Post.published' => "NOT {$alias}"), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEquals($true, $result);
}
开发者ID:manzapanza,项目名称:cakephp-api-utils,代码行数:29,代码来源:ModelWriteTest.php
示例3: testCounterCacheMultipleCaches
/**
* Tests having multiple counter caches for an associated model
*
* @access public
* @return void
*/
public function testCounterCacheMultipleCaches()
{
$this->loadFixtures('CounterCacheUser', 'CounterCachePost');
$User = new CounterCacheUser();
$Post = new CounterCachePost();
$Post->unbindModel(array('belongsTo' => array('User')), false);
$Post->bindModel(array('belongsTo' => array('User' => array('className' => 'CounterCacheUser', 'foreignKey' => 'user_id', 'counterCache' => array(true, 'posts_published' => array('Post.published' => true))))), false);
// Count Increase
$user = $User->find('first', array('conditions' => array('id' => 66), 'recursive' => -1));
$data = array('Post' => array('id' => 22, 'title' => 'New Post', 'user_id' => 66, 'published' => true));
$Post->save($data);
$result = $User->find('first', array('conditions' => array('id' => 66), 'recursive' => -1));
$this->assertEquals(3, $result[$User->alias]['post_count']);
$this->assertEquals(2, $result[$User->alias]['posts_published']);
// Count decrease
$Post->delete(1);
$result = $User->find('first', array('conditions' => array('id' => 66), 'recursive' => -1));
$this->assertEquals(2, $result[$User->alias]['post_count']);
$this->assertEquals(2, $result[$User->alias]['posts_published']);
// Count update
$data = $Post->find('first', array('conditions' => array('id' => 1), 'recursive' => -1));
$data[$Post->alias]['user_id'] = 301;
$Post->save($data);
$result = $User->find('all', array('order' => 'User.id'));
$this->assertEquals(2, $result[0]['User']['post_count']);
$this->assertEquals(1, $result[1]['User']['posts_published']);
}
开发者ID:netun0,项目名称:cakephp-social-harvester,代码行数:33,代码来源:ModelWriteTest.php
注:本文中的CounterCachePost类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论