2017-05-13 1 views
0

mes règles et tableau remplissable est inférieure àrègle de validation de Laravel sur fillables

protected $fillable = [ 
    'title', 'cover', 'price', 'dumping', 'description' 
]; 

protected $rules = [ 
    'title' => 'required|max:255|unique:packages', 
    'price' => 'required|numeric|between:0.01,999999.99', 
    'dumping' => 'sometimes|nullable|numeric|between:0.01,999999.99' 
]; 

comme u voir ci-dessus je n'ai pas attribut appelé limaces dans remplissable si l'utilisateur ne peut pas remplir cette colonne comme il veut

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

    if ($model->id){ 
     $this->rules['slug'] .= ',slug,'.$model->id; 
    } 

    static::saving(function($model){ 
     $model->slug = str_slug($model->title); 
    }); 
} 

mais

i f je veux mettre à jour un modèle, je dois valider limace attribut use par titre avec

str_slug ($ model-> Titre)

je ne sais pas comment pourrais-je faire cela?

comment puis-je cette règle dynamique?

(désolé pour mon mauvais anglais)

Répondre

0

i résolu comme ceci:

$data = array_merge($request->except('slug'), ['slug' => $request->has('title') ? str_slug($request->title) : '' ]); 
$package = new Package(); 
if ($package->validate($data)){ 
    $package->fill($request->all())->save(); 
    \Session::flash('success', __('common.message.success.add')); 
    return redirect()->route('admin.package.list'); 
} 

protected $rules = [ 
    'title' => 'required|max:255|unique:packages', 
    'slug' => 'required|max:255|unique:packages', 
    'price' => 'required|numeric|between:0.01,999999.99', 
    'dumping' => 'sometimes|nullable|numeric|between:0.01,999999.99' 
]; 

public static function boot() 
{ 
    parent::boot(); 
    static::saving(function($model){ 
     $model->slug = str_slug($model->title); 
    }); 
} 

de cette façon, je protégerai limace d'autres objets, sauf en utilisant le titre

ont une belle journée. .. :)