我在更新数据和将旧数据保留在另一列上时遇到了一些问题。我在表中有一个“价格”列,对于旧数据,我做了一个“旧价格”列。因此,我的网站刮一个网站,如果该网站上的价格变化,我想更新我的表的价格栏。但棘手的是,我还需要把旧价格推到“旧价格”一栏。
所以在我的代码中,我首先检查是否有这些数据。因为我不想复制整个数据。如果我没有数据,就把这些数据插入我的数据库。
<?php
if (allestates::where('link', '=', json_encode($outlineUrl))->count() > 0) {
$this->error('I have the DATA.');
} else {
allestates::insertGetId($changeForMyDB);
$this->line('DATA SAVED.');
}
但我也想看看网站上的“价格”有没有更新?如果价格更新了,就把它改成原来的价格。另外,将旧价格(在我的数据库中)放入“旧价格”列。我想有点复杂。我不能让它工作。任何建议,帮助真的很感激。
谢谢您!
以下是我的数据库结构:
$changeForMyDB = [
'region' => '関西',
'link' => json_encode($outlineUrl),
'building_name' => '',
'price' => '',
'old_price' => '',
'extend' => '',
'address' => '',
'total_house' => '',
'rooms' => '',
'cons_finish' => '',
'entry' => '',
'balcony' => '',
'company_name' => '',
'list_from' => ''
];
1条答案
按热度按时间kwvwclae1#
您可以检查现有行上的更改,如下所示:
或者,当价格发生变化时,您可以使用观察者设置旧的价格列:
在您的状态观察者中:
请在此处阅读有关设置观察者的更多信息:https://laravel.com/docs/5.7/eloquent#observers