web-dev-qa-db-ja.com

Laravelデータベースからロードせずに雄弁な更新レコード

laravelが初めてで、フォームの入力からレコードを更新しようとしています。ただし、レコードを更新するには、まずデータベースからレコードを取得する必要があります。 tは、レコードを更新するようなことが可能です(主キーが設定されています):

$post = new Post();
$post->id = 3; //already exists in database.
$post->title = "Updated title";
$post->save();
25
Dester Dezzods

Eloquentではなく、単にQuery Builderを使用できます。このコードはデータベース内のデータを直接更新します:)これはサンプルです:

DB::table('post')
            ->where('id', 3)
            ->update(['title' => "Updated Title"]);

詳細については、こちらのドキュメントをご覧ください。 http://laravel.com/docs/5.0/queries#updates

Post::where('id',3)->update(['title'=>'Updated title']);
63
KaJasB

プロパティexistsを使用:

$post = new Post();
$post->exists = true;
$post->id = 3; //already exists in database.
$post->title = "Updated title";
$post->save();

APIドキュメントは次のとおりです。 http://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html

18
harrrrrrry

firstOrCreate OR firstOrNew

// Retrieve the Post by the attributes, or create it if it doesn't exist...
$post = Post::firstOrCreate(['id' => 3]);
// OR
// Retrieve the Post by the attributes, or instantiate a new instance...
$post = Post::firstOrNew(['id' => 3]); 

// update record
$post->title = "Updated title";
$post->save();

それがあなたを助けることを願っています:)

4
Ravi Hirani

最初に、更新する行をロードする必要があります。

$post = Post::find($id);

私はあなたの場合

$post = Post::find(3);
$post->title = "Updated title";
$post->save();
1
maztch