我想从我的数据库中分离一些数据。我的视图中有一个表格,其中显示了一些带复选框的数据。每个标签都有自己的复选框。我想从我检查过的标签中传递所有tag_id。要分离它们,我还需要domain_id。我已经尝试了一些事情,但无法弄清楚如何通过tag_id标记我的所有domain_id。
<tbody>
{!! Form::open(['action' => 'DomainController@detach', 'method' => 'post']) !!}
@foreach($domains as $domain)
<tr>
<td>{{ $domain->name }}</td>
<td>{{ $domain->tld }}</td>
<td id="hello">
@foreach($domain->tags as $tag)
{{ $tag->name }},<br>
@endforeach
</td>
<td>
<input name="domain_id[]" type="hidden" value="{{ $domain->id }}">
@foreach($domain->tags as $tag)
<input type="checkbox" name="tag_id[]" value="{{$tag->id}}"><br>
@endforeach
</td>
</tr>
@endforeach
</tbody>
<div class="btn-group">
<button type="button" dropdown-toggle" data-toggle="dropdown" >Action<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a>
<button>Send</button>
</a></li>
</ul>
</div>
{!! Form::close() !!}
现在我想得到每个tag_id和标签的domain_id,如果我用勾号标记它们。
作为输出,我需要这样的东西:
[0] = "domain_id" : 5,
"tag_id" : [0] => 1,
[1] => 2,
[2] => 3,
[1] = "domain_id" : 6,
"tag_id" : [0] => 10,
[1] => 11,
[2] => 12,
目前..这就是我得到的
{"domain_id":["5","6","10","13","15","18","19","22","23","24","28"],"tag_id":["273","286","285"]}
我只是在ID为5的域中标记了标记,但它给了我所有的domain_id&#39; s并且我无法弄明白为什么......
答案 0 :(得分:0)
表单不会以您想要的方式输出值,因为它无法生成子数组,因此如我的评论所述,您必须即兴创作。您的底线是,您需要以某种方式将domain_id与每个tag_id相关联,以便您可以对其进行数据库或其他任何操作。
我建议您在视图中创建标签复选框
<td>
@foreach($domain->tags as $tag)
<input type="checkbox" name="tag_id[]" value="{{$domain->id}}:{{$tag->id}}"><br>
@endforeach
</td>
提交时,它应格式化请求对象中的tag_id,如此
[0] = "tag_id" : [0] => 5:1,
[1] => 5:2,
[2] => 5:3,
[3] => 6:10,
[4] => 6:11,
[5] => 6:12,
现在你可以循环遍历tag_id数组并将domain_id和tag_id字段分开来做你需要做的事情(你的例子没有说出你想用它们做什么)
foreach ($request->tag_id as $item) {
$arrItem = explode(':', $item);
// $arrItem[0] is your domain_id for the tag_id $arrItem[1]
// other logic here
}