2017-12-07 28 views
0

Ich versuche, Uncial slug für Titel in DB generieren und speichern.Überprüfen Sie, ob vorhanden und create

   $feed->friendlyUrl()->make([ 
       'url' => str_slug($feed->name), 
       'action' => "feeds/{$feed->id}", 
       'complicated' => false, 
       'page_type_id' => PageType::TYPE_INDIVIDUAL_FEED_PAGE, 
      ]); 

Wie überprüfen, ob solche Felder in URL vorhanden sind? Und wenn existieren speichern:

'url' => str_slug($feed->name,"-1"), 

Ich denke:

if (FriendlyUrl::whereUrl(str_slug($feed->name))){ 
      $feed->friendlyUrl()->make([ 
       'url' => str_slug($feed->name), 
       'action' => "feeds/{$feed->id}", 
       'complicated' => false, 
       'page_type_id' => PageType::TYPE_INDIVIDUAL_FEED_PAGE, 
      ]);} else { 
       $feed->friendlyUrl()->make([ 
        'url' => str_slug($feed->name), 
        'action' => "feeds/{$feed->id}-1", 
        'complicated' => false, 
        'page_type_id' => PageType::TYPE_INDIVIDUAL_FEED_PAGE, 
      }; 
      break; 

Aber es ist nicht sauber und was passiert, wenn eine solche URL - str_slug($feed->name,"-1") ist bereits vorhanden?

+0

Bitte überprüfen - https://stackoverflow.com/questions/18839941/insert-a-new-record-if-not-exist-and-update-if-exist-laravel-eloquent –

Antwort

0

Try this -

$FriendlyUrl = FriendlyUrl::firstOrNew(array('url' => str_slug($feed->name))); 
$FriendlyUrl->action = "feeds/{$feed->id}"; 
$FriendlyUrl->complicated = false; 
$FriendlyUrl->page_type_id = PageType::TYPE_INDIVIDUAL_FEED_PAGE; 
$FriendlyUrl->save(); 

Referenz - Insert a new record if not exist and update if exist, laravel eloquent

+0

Ich brauche erstellen, einzigartig, wie in meiner Antwort. – tarurexod

+0

Okay, danke. –

1

Sie diese verwenden können:

$friendlyUrl = friendlyUrl::firstOrNew(
    ['url' => str_slug($feed->name,"-1")], [ 
       'action' => "feeds/{$feed->id}", 
       'complicated' => false, 
       'page_type_id' => PageType::TYPE_INDIVIDUAL_FEED_PAGE,] 
); 

$friendlyUrl->save(); 
+0

URL muss eindeutig sein, aber nicht '$ feed-> name," - 1 ")' – tarurexod

0

Einzigartige Slug für Titel

public static function boot() 
      { 
       parent::boot(); 

      static::creating(function($model) { 
       $model->slug = str_slug($model->ToBeSluggified);// change the ToBeSluggiefied 

       $latestSlug = 
        static::whereRaw("slug = '$model->slug' or slug LIKE '$model->slug-%'") 
         ->latest('id') 
         ->value('slug'); 
       if ($latestSlug) { 
        $pieces = explode('-', $latestSlug); 

        $number = intval(end($pieces)); 

        $model->slug .= '-' . ($number + 1); 
       } 
      }); 
     } 
Verwandte Themen