Sélectionner une page

Laravel propose une système d’accesseurs et de mutateurs très efficace et simplissime à utiliser. Ce petit exemple vous montre leurs utilisation dans un modèle. Les accesseurs et mutateurs que l’on appèle aussi setters et guetters permettent, si vous ne le savez pas de modifier le comportement normal de la lecture ou de l’écriture d’un attribute. Dans le cas ci-dessous, il contrôle si la valeur à stocker est corente et retounre la valeur texte d’un enregistrement numérique de ma table. Leur très grand avantage est qu’il ne peuvent pas être contournés.

public function getNomAttributAttribute(){ 
// appelé par exemple : $categories->genre = 12;
}
public function setNomAttributAttribute($to_set){
// echo $categories->genre = 1;

Ci dessous vous avez un exemple complet:

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Model;

class Categories extends Model
{
    use Notifiable; 
 
    protected $table = 'categories';
    public $timestamps = false; //champ created_at updated_at 
    public $attributs_range;
 
    protected $fillable = [ //champs que l'on peut modifier
       'idfiche','url'
    ];
 
    public function __construct()
    {
       $this->attributs_range['genre'] =array(1,2,3,4);
    }
    public function setGenreAttribute($to_set){
       if(!in_array($to_set,$this->attributs_range['genre'])){
          $to_set = null;
       }
       $this->attributes['genre'] = $to_set;
    } 
    public function getGenreAttribute(){
       switch($this->attributes['genre']){
          case '1':
             return "Videos";
          break;
          //...
       }
    } 
}

Pour l’utilisation dans un contrôleur par exemple:

$categories->genre = 12; //null sera enregistré dans la bse de donnée
echo $categories->genre = 1; //va afficher Videos