Чем отличается функция save (), create () в laravel 5

Мне нужно знать, в чем разницаsave() а такжеcreate() функция в Laravel 5. Где мы можем использоватьsave() а такжеcreate() ?

Ответы на вопрос(1)

Решение Вопроса

Model::create это простая обертка вокруг$model = new MyModel(); $model->save() Смотрите реализацию

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

спасти()

Метод save () используется как для сохранения новой модели, так и для обновления существующей. здесь вы создаете новую модель или находите существующую, устанавливая ее свойства по одному и, наконец, сохраняете в базе данных.

save () принимает полный экземпляр модели Eloquent

$comment = new App\Comment(['message' => 'A new comment.']);

$post = App\Post::find(1);`

$post->comments()->save($comment);


Создайте()

в то время как в методе создания вы передаете массив, устанавливая свойства в модели и сохраняясь в базе данных за один раз.

create () принимает простой массив PHP

$post = App\Post::find(1);

$comment = $post->comments()->create([
    'message' => 'A new comment.',
]);

РЕДАКТИРОВАТЬ
Как указывал @PawelMysior, перед использованием метода create обязательно отметьте столбцы, значения которых можно безопасно задавать с помощью массового присваивания (например, name, birth_date и т. Д.), Нам необходимо обновить наши модели Eloquent, предоставив новое свойство под названием $ fillable. Это просто массив, содержащий имена атрибутов, которые можно безопасно установить с помощью массового присваивания: например:

Класс Country расширяет Model {

protected $fillable = [
    'name',
    'area',
    'language',
    ];

}

 pawelmysior09 авг. 2016 г., 08:29
Здесь следует отметить одну важную вещь: если вы планируете использоватьcreate()все атрибуты, которые вы передаете ему, должны быть перечислены в$fillable атрибут на модели. Увидеть:laravel.com/docs/master/eloquent#mass-assignment
 Yousef Altaf02 окт. 2017 г., 17:48
@PawelMysior такcreate() более безопасный, чемsave()?
 Junior Frogie10 окт. 2018 г., 11:08
@YousefAltaf Я могу сказать, что оба безопасны, но create () более гибок
 Nikunj K.09 авг. 2016 г., 08:20
Спасибо за вашу детализацию ..
 Nikunj K.09 авг. 2016 г., 08:14
спасибо за ваш ответ, но не могли бы вы дать мне более подробную информацию. Я прошел через документ Laravel, но у меня не было большой идеи оттуда.

Ваш ответ на вопрос