не использовать соединение. торт php - PullRequest
0 голосов
/ 31 марта 2011

У меня есть следующий код.

var $uses = array('TABLE1','TABLE2','TABLE3');

function test() {

 $this->Table1->updateAll(
        array('Table1.field1' => 'some value'),
        array('Table1.field1 ' => 'some condition')
            );
......
.....

проблема в том, что когда я пытаюсь обновить только одну таблицу ... Table1, она объединяет другие таблицы с ней.

UPDATE 
    `Table1`  
LEFT JOIN
    `Table2`  
ON 
    (`Table1`.`id` = `Table2`.`uid`) 
LEFT JOIN 
    `Table3`  
ON 
    (`Table1`.`Table3_id` = `Table3`.`id`) 
SET 
    `Table1`.`field1` = 1  
WHERE 
    some condition....... 

Как мне не присоединиться к таблице и запускать обновление только на Table1?

Edit:

Я использовал это, но не работало:

$this->Table1->unBindModel(array(hasMany => array('Table2', 'Table3')));

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Попробуйте установить уровень recursive на -1. Я не уверен, влияет ли это на обновления вызовов, но стоит попробовать.

$this->Table1->recursive = -1;
$this->Table1->updateAll(...);
2 голосов
/ 01 апреля 2011

во-первых, прекратите использование $ использует. это только причинит вам больше боли, чем нужно.

чтобы избежать объединений используйте Model::unbindModel(array('relationType' => array('Relation')) http://book.cakephp.org/view/1045/Creating-and-Destroying-Associations-on-the-Fly

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...