本文整理汇总了PHP中CounterCachePost::unbindModel方法的典型用法代码示例。如果您正苦于以下问题:PHP CounterCachePost::unbindModel方法的具体用法?PHP CounterCachePost::unbindModel怎么用?PHP CounterCachePost::unbindModel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CounterCachePost
的用法示例。
在下文中一共展示了CounterCachePost::unbindModel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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);
}
示例2: 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']);
}