以下是通过laravel在MySql中插入数据的两种方法 方式1:
$post = Post::create([
'title' => $request->input('title'),
'body' => $request->input('body')
]);
方法2:
$post = new Post;
$post->title = $request->input('title');
$post->body = $request->input('body');
$post->save();
我只想知道哪种方法更好,为什么?谁能告诉我哪种方法更好?
答案 0 :(得分:3)
Model::create
是围绕它的简单包装,如果您查看其实现的话:
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()
在create
方法中,您传递数组,在模型中设置属性,并一发不可收拾在数据库中。
create()
接受纯PHP数组
$post = App\Post::find(1);
$comment = $post->comments()->create([
'message' => 'A new comment.',
]);