Laravel 5.2 - Problème avec les Mutateurs

Par oza75, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai un formulaire pour poster des articles. Dans le formulaire j'ai un champ qui a pour name=title, un champ de type=hidden qui a pour name
slug et value="". Maintenant dans mon model Article J'ai crée un Mutateur pour générer automatiquement le slug grâce au title

<?php namespace ndf; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; class Article extends Model { protected $fillable = ['id', 'title', 'slug', 'url', 'content', 'in_top', 'author', 'status', 'comment_status', 'online', 'brouillon', 'modified_at', 'modified_at_gmt', 'comment_count', 'category_id', 'created_at', 'updated_at']; public function category() { return $this->belongsTo('ndf\Category'); } public function setSlugAttribute($value) { if (!empty($value)) $this->attributes['slug'] = ""; return $this->attributes['slug'] = Str::slug($this->title); }

Ce que je veux

Je veux que le Mutateur genère le slug grâce au title

Ce que j'obtiens

Quand je $this->title je n'obtiens aucune valeur. Ce qui empêche la création du slug.

1 réponse

Alexandre #lbac, il y a 9 ans

Salut,

public function setTitleAttribute($value) { $this->attributes['slug'] = str_slug($value); }

Passes directement dans l'attribut title pour générer le slug ;)