web-dev-qa-db-fra.com

Quelle est la différence entre la fonction save (), create () dans laravel 5

J'ai besoin de savoir quelle est la différence entre la fonction save() et create() dans laravel 5. Où pouvons-nous utiliser save() et create() ?

15
Nikunj K.

Model::create Est un simple wrapper autour de $model = new MyModel(); $model->save() Voir l'implémentation

/**
 * Save a new model and return the instance.
 *
 * @param  array  $attributes
 * @return static
 */
public static function create(array $attributes = [])
{
    $model = new static($attributes);

    $model->save();

    return $model;
}

enregistrer ()

  • la méthode save () est utilisée à la fois pour enregistrer un nouveau modèle et pour mettre à jour un modèle existant. ici, vous créez un nouveau modèle ou en trouvez un existant, définissez ses propriétés une par une et enregistrez enfin dans la base de données.

  • save () accepte une instance de modèle Eloquent complète

    $comment = new App\Comment(['message' => 'A new comment.']);
    
    $post = App\Post::find(1);`
    
    $post->comments()->save($comment);
    


create ()

  • tandis que dans la méthode create, vous passez un tableau, définissez les propriétés dans le modèle et persiste dans la base de données en une seule fois.
  • create () accepte un simple PHP tableau

    $post = App\Post::find(1);
    
    $comment = $post->comments()->create([
        'message' => 'A new comment.',
    ]);
    

    MODIFIER
    . nos modèles Eloquent en fournissant une nouvelle propriété appelée $ fillable. Il s'agit simplement d'un tableau contenant les noms des attributs qui peuvent être définis en toute sécurité via une affectation en masse:

exemple :-

class Country extends Model {

    protected $fillable = [
        'name',
        'area',
        'language',
        ];
}
25
Tony Vincent