Laravel todoリストアプリの制作におけるupdateメソッドについて
解決したいこと
laravelを用いてtodoリストアプリを制作中なのですが、更新処理の記述の修正方法がわかりません。
更新ボタンを押すと既存のタスク名も変更されてしまい、尚且つ更新したいタスクも更新されません。
追加や削除のボタンを押すと一応元には戻ります。
更新処理の部分でどこを修正すればいいのかご教示頂きたいです。
ちなみに他の機能(タスク一覧の表示、タスクの追加、タスクの削除)は正しく処理が行えております。
発生している問題・エラー
エラー等は特に出ていないです。
該当するソースコード
index.blade.phpの該当箇所が
@foreach($todos as $todo)
<tr>
<td>
{!! $todo->updated_at !!}
</td>
<td>
{!! Form::text('content_update',$todo->content,['class' => 'input-update']) !!}
</td>
<td>
<button class="button-update">更新</button>
</td>
{!! Form::close() !!}
<td>
<button type="button" class="button-delete" onclick="location.href='{{ route('delete',$todo) }}'">削除</button> {{--上記のフォームタグのやり方と同じでurlにてdeleteと$todoを付け足している--}}
</td>
</tr>
でTodoRequest.phpの該当箇所が
public function rules()
{
return [
'content' => 'required| max:20',
'content_update' => 'required| max:20',
//
];
}
public function messages()
{
return[
'content.required' => '・タスクを入力してください',
'content.max' => '・タスクは20文字以内で入力してください。',
];
}
で
TodoController.phpの該当箇所が
class TodoController extends Controller
{
public function index(){
$todos = Todo::get();
return view('index',compact('todos'));
}
public function store(TodoRequest $request){
$todo = new Todo();
$todo->content = $request->content;
$todo->save();
return redirect()->route('index');
}
public function update(TodoRequest $request, Todo $todo){
$todo->content = $request->content_update;
$todo->save();
return redirect()->route('index');
}
public function delete(Todo $todo){
$todo->delete();
return redirect()->route('index');
}
です。
このtodoリストアプリの全コードはgithub上に掲載していますのでurlを添付しておきます。
ずっと悩んでいるのですが一向に解決しないので是非ともご回答頂けたら大変嬉しい次第です。
自分で試したこと
ネットでフォームファザードの使い方を確認した。