совершать сделки в CakePHP - PullRequest
0 голосов
/ 23 октября 2010

как я могу сделать это на cakephp?

возможно ли скопировать данные из таблицы в другую таблицу?

вот мой пример. у меня есть два стола, склад и выставочный зал

мой стол со склада имеет (product_id и stock_quantity), а мой стол выставочного зала имеет (product_id (fk со склада), stock_transferred) ..

например на складском столе

product_id     stock_quantity
1              10
2              20

как я могу перенести product_id (1) с stock_quantity (5) в таблице выставочного зала и при этом сохранить данные в таблице хранилища?

поэтому после передачи данных моя таблица хранилища становится такой:

product_id     stock_quantity
1              5
2              20

и мой стол выставочного зала становится таким:

product_id     stock_transferred
1              5

Как я могу сделать это в CakePHP? Например, у меня есть текстовый ввод, в котором пользователь может указать, сколько акций он будет передавать в таблицу showroom.

извините, я не могу объяснить, что я плохо знаю английский.

BEGIN TRAN 

INSERT INTO showroom
SELECT product_id, @ValueToBeReduced FROM warehouse 
WHERE product_id = 1

-- error handling

UPDATE warehouse 
SET stock_quantity = stock_quantity - @ValueToBeReduced
INNER JOIN showroom
ON warehouse.product_id = showroom.product_id
AND showroom.product_id = 1

-- error handling

COMMIT TRAN

Ответы [ 2 ]

0 голосов
/ 23 октября 2010

Это базовый шаблон для транзакций в cakephp:

$this->Model->begin();
$returnQuery = $this->Model->query($query); // or $returnQuery = $this->Model->save($data);
if($returnQuery !== false){
    $this->Model->commit();
}else{
    $this->Model->rollback();
}
0 голосов
/ 23 октября 2010

Используйте begin() и commit() / rollback() методы класса DataSource или transactional свойство класса Model. Вы также можете предоставить необработанные SQL-запросы, используя метод query().

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