我正在删除一个新闻网站并将其保存在数据库中,但是这个“工作”或功能将每小时运行一次,因此为了减少记录数量,我将其减少到 20 条记录,现在我当然不这样做了不想保留旧消息,因此我想插入新查询并删除以前的查询或更新现有查询。记录数始终为 20,但如何实现呢?当然,如果我插入+删除,id 号码每次都会改变。但是,如果我进行更新,我将如何告诉它更新前 1-20 个 ID。
这是它在数据库中的样子:
到目前为止的代码如下:
function oldham_chronicle(){
$client = new Client();
$crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features');
$crawler->filter('div[id=content]>.teaser-50')->each(function ($node) {
$test = $node->filter('.plain')->text();
$test2 = $node->filter('.dateonline')->text();
$news = new News();
$news->title = $test;
$news->datepublished = $test2;
$news->save();
});
return view('chronicle');
最佳答案
我建议你更新,你可以试试这个
function oldham_chronicle(){
$client = new Client();
$crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features');
$crawler->filter('div[id=content]>.teaser-50')->each(function ($node, $key) {
$test = $node->filter('.plain')->text();
$test2 = $node->filter('.dateonline')->text();
$id = $key + 1;
$news = News::where('id', $id)->first();
// if news is null
if (!$news) {
$news = new News();
}
$news->title = $test;
$news->datepublished = $test2;
$news->save();
});
return view('chronicle');
我没有测试我的代码,因为我没有数据。
关于mysql - Laravel mysql 插入+删除或更新如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44516087/