Ad

PHP Function Updating All Title Fields For Every Task In Whole Table

- 1 answer

I am trying to update the title as a single database task entry. My function currently updates the titles of all the tasks in the table.

public function update(User $user, Task $task, Request $request) {
    $data = $this->validate($request, [
        'title' => 'required|string|max:255',
    ]);

    Auth::user()->tasks()->update([
        'title' => $data['title'],
        'is_complete' => 0,
        'updated_at' => '2020-01-30 10:39:33',
        'created_at' => '2020-01-30 10:39:33'
    ]);

    session()->flash('status', 'Task Completed!');

    return redirect('/profile/' . auth()->user()->id);
}
Ad

Answer

Try this

 public function update(User $user, Task $task, Request $request)
    {
        $data = $this->validate($request, [
            'title' => 'required|string|max:255',
        ]);
        Auth::user()->tasks()->find($task->id)->update([
            'title' => $data['title'],
            'is_complete' => 0,
            'updated_at' => '2020-01-30 10:39:33',
            'created_at' => '2020-01-30 10:39:33',
        ]);
        session()->flash('status', 'Task Completed!');

        return redirect('/profile/' . auth()->user()->id);
    }

add find($task->id)

Ad
source: stackoverflow.com
Ad