it-swarm-pt.tech

O que é diferente entre a função save (), create () em laravel 5

Eu preciso saber qual é a diferença de save() e create() function em laravel 5. Onde podemos usar save() e create()?

15
Nikunj K.

Model::create É um invólucro simples em torno de $model = new MyModel(); $model->save() Veja a implementação

/**
 * 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;
}

salvar ()

  • o método save () é usado para salvar o novo modelo e atualizar o existente. aqui você está criando um novo modelo ou encontra um existente, definindo suas propriedades uma a uma e, finalmente, salva no banco de dados.

  • save () aceita uma instância completa do modelo Eloquent

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


criar ()

  • enquanto no método create, você está passando a matriz, definindo propriedades no modelo e persiste no banco de dados de uma só vez.
  • create () aceita uma matriz simples PHP

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

    EDITAR
    Como o @PawelMysior apontou, antes de usar o método create, marque as colunas cujos valores podem ser definidos com segurança por meio da atribuição em massa (como nome, data de nascimento e assim por diante.), Precisamos atualizar nossos modelos Eloquent, fornecendo uma nova propriedade chamada $ fillable. Isso é simplesmente uma matriz que contém os nomes dos atributos que podem ser definidos com segurança através da atribuição em massa:

exemplo: -

class Country extends Model {

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