laravel 中的多个 select 用逗号分隔每个值
separate each value with comma from multiple select in laravel
我让任务管理器有一个表格,我想在其中分配任务,如果用户 select 有多个选项,则用逗号分隔
这是我的表格
<form method="post" action="{{route('assignments.store')}}">
@csrf
<table>
<tr>
<td>Task Title : </td>
<td>
<select name="task_id" id="task_id">
@foreach ($tasks as $task)
<option value="{{ $task->id }}">{{ $task->title }}</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td>Staff Name : </td>
<td>
<select name="staff_id" multiple>
<option value=null>Select One</option>
@foreach ($staffs as $staff)
<option value="{{ $staff->id }}">{{ $staff->name }}</option>
@endforeach
</select>
</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">Submit</button></td>
</table>
</form>
这是我的存储函数,用于存储从表单收到的数据
$request->validate([
'staff_id' => 'required',
'task_id' => 'required',
'done_at' => 'sometimes',
]);
$assignment = new Assignment();
$assignment->staff_id = $request->staff_id;
$assignment->task_id = $request->task_id;
$assignment->done_at = $request->done_at;
$assignment->save();
return redirect()->route('assignments.index', compact('assignment'))->withSuccess('Done');
试试这个,
更改名称=staff_id[]
<select id="staff" name="staff_id[]" multiple="multiple">
---
</select>
您可以通过
查看
dd(implode(',', $request->staff_id));
$assignment = new Assignment();
$assignment->staff_id = implode(',', $request->staff_id);
还有一件事我忘了在你的数据库中告诉你我认为 staff_id 是 f.k 所以它将允许在项目中存储一个 id 所以你必须做的改变 staff_id 使用 varchar 类型然后它将允许用逗号分隔存储值。
下面是我们正在将数组转换为字符串的图像形式内爆
请设置select name = staff_id[] 那么只有你会得到多个数据
我让任务管理器有一个表格,我想在其中分配任务,如果用户 select 有多个选项,则用逗号分隔
这是我的表格
<form method="post" action="{{route('assignments.store')}}">
@csrf
<table>
<tr>
<td>Task Title : </td>
<td>
<select name="task_id" id="task_id">
@foreach ($tasks as $task)
<option value="{{ $task->id }}">{{ $task->title }}</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td>Staff Name : </td>
<td>
<select name="staff_id" multiple>
<option value=null>Select One</option>
@foreach ($staffs as $staff)
<option value="{{ $staff->id }}">{{ $staff->name }}</option>
@endforeach
</select>
</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">Submit</button></td>
</table>
</form>
这是我的存储函数,用于存储从表单收到的数据
$request->validate([
'staff_id' => 'required',
'task_id' => 'required',
'done_at' => 'sometimes',
]);
$assignment = new Assignment();
$assignment->staff_id = $request->staff_id;
$assignment->task_id = $request->task_id;
$assignment->done_at = $request->done_at;
$assignment->save();
return redirect()->route('assignments.index', compact('assignment'))->withSuccess('Done');
试试这个,
更改名称=staff_id[]
<select id="staff" name="staff_id[]" multiple="multiple">
---
</select>
您可以通过
查看dd(implode(',', $request->staff_id));
$assignment = new Assignment();
$assignment->staff_id = implode(',', $request->staff_id);
还有一件事我忘了在你的数据库中告诉你我认为 staff_id 是 f.k 所以它将允许在项目中存储一个 id 所以你必须做的改变 staff_id 使用 varchar 类型然后它将允许用逗号分隔存储值。
下面是我们正在将数组转换为字符串的图像形式内爆 请设置select name = staff_id[] 那么只有你会得到多个数据