17saveメソッドの使い方と違い
saveメソッドは、既存のモデルインスタンスを使用してデータベースのレコードを更新します。
モデルの属性を手動で変更した後、saveメソッドを呼び出すことで、その変更がデータベースに保存されます。
$memo = Memo::find($edit_id); // 変更するレコードを取得
$memo->content = $edit_memo; // 変更後のメモの内容
$memo->save(); // 変更内容を保存どちらでも更新することができますが、まとめて上書きする場合などはupdateメソッドの方が便利なので、使い分けには注意が必要です。
これで上書き処理も実装することができました。
では画面を再読み込みし、メモを編集してみましょう。
メモを編集


無事に編集されましたね!「サンプルテキスト」が「サンプルテキスト【編集後】」に上書きされています。
これでメモ帳の完成です! お疲れ様でした。
最後にコントローラの全体を下記に記述しておきます。
エラー等が出ている場合は見比べてみてください。
<?php
namespace App\\Http\\Controllers;
use App\\Models\\Memo;
use Illuminate\\Http\\Request;
class MemoController extends Controller
{
/**
* 画面を表示
* @return View
*/
public function show()
{
$memo_info = Memo::get();
return view('home')
->with('memo_info', $memo_info);
}
/**
* メモ追加処理
* @param Request $request
* @return View
*/
public function add(Request $request)
{
$memo_text = $request->memo_text;
$memo_model = new Memo();
$memo_model->content = $memo_text;
$memo_model->save();
return self::show();
}
/**
* 削除処理
* @param Request $request
* @return View
*/
public function delete(Request $request)
{
$delete_id = $request->delete_id;
$memo_model = Memo::find($delete_id);
$memo_model->delete();
return self::show();
}
/**
* 編集ページに遷移
* @param $edit_id
* @return View
*/
public function getEdit($edit_id)
{
$memo_info = Memo::find($edit_id);
return view('edit')
->with('memo_info', $memo_info);
}
/**
* 編集処理
* @param Request $request
* @return View
*/
public function postEdit(Request $request)
{
$edit_id = $request->edit_id;
$edit_memo = $request->edit_memo;
Memo::where('id', $edit_id)->update(['content' => $edit_memo]);
return self::show();
}
}追加・削除・更新一通りの処理が学べたかなと思います。次からはより応用の認証機能(ログイン機能)や1対多・多対多やバリデーションについて学んでいきます。
Git
ここまでの変更点をコミットします。
git add .
git commit -m "メモ帳の作"
git initまた、現在の状態を保存しておくためにも、リモートリポジトリにソースコードを反映させましょう。
リモートリポジトリの作成方法とpushの方法は、Gitの教材を参考にしてください。
コメントを残す