php - 将动态创建的复选框值存储在 Laravel 的另一个表中
问题描述
我有以下代码可以从一个表中动态生成复选框:
{!! Form::open(['url' =>URL::to('admin/user/'.$profileUser->id) , 'method'=>'PUT', 'enctype'=>'multipart/form-data' ]) !!}
@foreach ($userRoles as $key => $userRole)
<tr>
<td width="10%">{{ Form::label($userRole->name) }}</td>
<td>{{ Form::checkbox( 'rolename[]', $userRole->id) }}</td>
</tr>
@endforeach
<tr>{{ Form::submit('Save', array('class' => 'btn', 'name' => 'roleSubmit')) }}</tr>
</tbody>
{{ Form::close() }}
在控制器中我有:
if (isset($_POST['roleSubmit'])){
DB::table('role_users')->where('user_id', $request->get('id', $id))->delete();
$userRole = json_encode($request->input('rolename'));
DB::table('role_users')->insert(
array(
'user_id' => $id,
'role_id' => $userRole
)
);
return redirect()->back();
}
然后我需要像这样将复选框值存储在“role_users”中:
我在哪里弄乱它的任何指导方针?
解决方案
试试这个。
if (isset($_POST['roleSubmit'])){
DB::table('role_users')->where('user_id', $request->get('id', $id))->delete();
$userRole = $request->input('rolename');
foreach($userRole as $role){
DB::table('role_users')->insert(
array(
'user_id' => $id,
'role_id' => $role
)
);
}
return redirect()->back();
}
根据第二个请求
控制器
$RoleByUser = DB::table('role_users')
->where('user_id', $user_id)
->get()
->pluck('role_id')
->ToArray();
刀
{{ Form::checkbox( 'rolename[]', $userRole->id, (in_array($userRole->id, $RoleByUser)) ? true : false) }}
推荐阅读
- python - Mypy 子类中更具体的参数
- c# - 单击时如何在同一窗口上显示不同的内容?
- angular - Best way to get 4 documents with one query?
- python - JSON加载函数给出额外数据值错误
- php - Redirect Web page does not work in server
- elasticsearch - Elasticserarch How to tokenize on whitespace and special word
- mongodb - MongoDB Upsert 插入数组而不创建单独的文档?
- python - 这是创建 PyTorch 标量的方法吗?
- c++ - Why does nothing happen after instantiation? (C++ memory allocator implementation)
- r - 如何将 grob 剪辑到 grobTree 对象中