2017-06-13 151 views
0

我正在为新闻报废一个网站并将其保存在数据库中,但是这个“工作”或功能将每小时运行一次,因此为了减少记录数量,我将其保存至20条记录,现在我当然不会想要保留旧的消息,因此我想插入新的查询并删除以前的一个或更新现有的。记录的数量总是20,但这将如何完成?当然,如果我插入+删除,id号会每次都改变。但是,如果我做了更新,我将如何告诉它更新第1-20个ID。Laravel mysql插入+删除或更新如何?

这是它看起来像一个数据库:

enter image description here

下面是到目前为止的代码:

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'); 
+0

您是否尝试过迁移语法? – MuTiny

回答

1

我建议你升级,你可以用这个

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'); 
尝试

我没有测试我的代码,因为我没有数据。

+0

工程精彩!如果没有id = 1,那么基本上如果没有记录插入,如果有,更新呢? – Przemek

+0

我更新如果没有记录与ID @Przemek – brobrobrobrobro

+0

你是明星! <3谢谢! – Przemek