iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
1
Software Development

30天完成家庭任務平台系列 第 13

30天完成家庭任務平台:第十三天

  • 分享至 

  • xImage
  •  

接下來是TaskController:

class TaskController extends Controller
{
    public function edit(Project $project,Task $task)
    {
        $this->isUserOwnerOrMemberOfProject($task);
        return view('tasks.edit',['task'=>$task,'project'=>$task->project]);
    }
    public function store(Project $project)
    {
        $this->authorize('update', $project);
        $validatedData = $this->validateRequest();
        $project->addTask($validatedData);
        return redirect(route('project.show', compact('project')));
    }

    public function update(Project $project, Task $task)
    {
        $this->isUserOwnerOrMemberOfProject($task);
        $validatedData = $this->validateRequest();
        $updatedAttribute = array_merge(
            $validatedData,
            [
                'completed' => request()->has('completed')
            ]
        );
        $task->update($updatedAttribute);
        return redirect()->action('ProjectController@show',['project'=>$project]);
    }

    protected function isUserOwnerOrMemberOfProject(Task $task)
    {
        if (
            Auth::user()->isNot($task->project->owner)
            && !$task->project->members->contains(Auth::user())
        ) {
            abort(403);
        }
    }

    protected function validateRequest()
    {
        return request()->validate(
            [
                'body' => 'required',
                'due' => 'required|date',
                'start' => 'required|date',
                'assignee_id'=>'required|int|exists:users,id'
            ]
        );
    }
}


上一篇
30天完成家庭任務平台:第十二天
下一篇
30天完成家庭任務平台:第十四天
系列文
30天完成家庭任務平台30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言