如何将任务同时分配给多个用户?

Posted

技术标签:

【中文标题】如何将任务同时分配给多个用户?【英文标题】:How to assign task to multiple users at same time? 【发布时间】:2021-07-05 23:23:14 【问题描述】:

我做任务管理系统,不知道如何同时给多个用户分配任务?

这是我的 AssignmentController 存储功能。

public function store(Request $request)

    $request->validate(array(
        'assignment' => 'array|required',
        'assignment.*.assigned_to' => 'required',
        'task_title' => 'required',
        'task_description' => 'required',
        'done_at' => 'sometimes',
    ));

foreach($request->get('assignment') as $assignment)

    $assignment = Assignment::create(array(
        'task_title' => $request->input('task_title'),
        'task_description' => $request->input('task_description'),
        'assigned_to' => $assignment['assigned_to'],
        'done_at' => $request->input('done_at'),
    ));

这是我的 assignment.create 页面,其中 3 个字段 assignment_to、task_title 和 task_description done_at 是可选的

<form method="post" action="route('assignments.store')">
        @csrf
        <table>
                <tr>
                    <td>Staff Name : </td>
                    <td>
                        <select name="assignment[$key][assigned_to]" id="assigned_to" multiple>
                            <option value="">Select One</option>
                            @foreach ($staffs as $staff)

                                <option value=" $staff->id "> $staff->name </option>

                            @endforeach
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Task Title : </td>
                    <td><input type="text" name="task_title" class="form-control"></td>
                </tr>
                <tr>
                    <td>Task Description : </td>
                    <td><input type="text" name="task_description" class="form-control"></td>
                </tr>
                <tr>
                    <td>Done At :</td>
                    <td><input type="time" name="done_at" class="form-control"></td>
                </tr>
            <td><button class="btn btn-primary" name="submit" type="submit" value="submit" id="submit">Submit</button></td>
        </table>
    </form>

【问题讨论】:

【参考方案1】:

你有用户表

 id 
 name 

和分配表

        id
        title
        description

而且你必须有 user_assignment 表

        user_id
        assignment_id

此表定义了用户和分配之间的多对多关系 也就是说每个用户有很多任务,每个任务属于很多用户

阅读文档: https://laravel.com/docs/7.x/eloquent-relationships#many-to-many

【讨论】:

以上是关于如何将任务同时分配给多个用户?的主要内容,如果未能解决你的问题,请参考以下文章

在REDMINE,如何把问题同时指配给多人?(新建问题副本太麻烦)

XenServer 如何计算会话的角色?

将整数分配给列表

是否可以将多个验证组分配给单个验证控件?

使用 jQuery 将多个 CSS 类的 Javascript 数组分配给一个元素

是否可以将两位小数分配给双精度