php – 在foreach循环中的表单不能正常工作

我正在laravel 5.2中创建一个测试博客站点,并尝试创建一个页面来管理所有类别.

到目前为止,一切工作正常,但我希望有一个包含类别列表的表,并对每个内联进行编辑.通常我在其中创建一个表和一个foreach循环,每行都有一个表单,但这次它不能正常工作.我读到表格中的表格是一种不好的做法,所以我试图用div来制作它,但它也不起作用.

以下是视图的代码:

@foreach($categories as $category)
 <form action="/blog/categories/edit/{{ $category->id }}" method="post">
  <div class="row">
   <input type="hidden" name="_token" value="{{ csrf_token() }}">
   <div class="col-md-2"><input type="text" value="{{ $category->id }}" name="id" class="category-input-id" readonly="readonly"></div>
   <div class="col-md-2">{{ $category->created_at }}</div>
   <div class="col-md-2">{{ $category->updated_at }}</div>
   <div class="col-md-2">
    <label for"edit" class="btn btn-primary"><i class="fa fa-pancil"></i></label>
    <input type="submit" id="edit" name="edit" class="hidden" />
    <label for="delete" class="btn btn-danger"><i class="fa fa-trash"></i></label>
    <input type="submit" id="delete" name="delete" class="hidden" />
   </div>
 </div>
</form>
@endforeach

在控制器中:

public function editcategory (Request $request, $id)
{

    dd($request->all());
}

我没有粘贴所有代码来获取数据,因为我没有在这里收到正确的数据.

输出只是循环中的第一行!
每当我点击它,它只获得第一个元素.

array:5 [▼
  "_token" => "wUhnsw8AoAuUDsuElALg8nM91bFG4EkUHTEAkkjp"
  "id" => "16"
  "name" => "Category Name"
  "description" => "desc test"
  "edit" => "Send"
]

哪里出错了?
我也尝试将表单放在循环之外,并使用数组作为元素(比如name =“description []”等).但是一旦我通过所有数组,我不知道如何获得正确的数组!

谢谢

最佳答案 在您的情况下,您不需要表格,您可以通过< a>轻松完成此操作.标签,你也可以在这样的表中输出你的类别:

@foreach($categories as $category)
        <tr>
            <td style="text-align:center">{{$category->field1}}</td>
            <td style="text-align:center">{{$category->field2}}</td>
            <td style="text-align:center">{{$category->field3}}</td>
            <td style="text-align:center">{{$category->field4}}</td>

            <td style="text-align:center"><a href="{{URL::to('/blog/categories/edit/'.$category->id)}}">{{ Lang::get('global.edit')}}</a></td>
            <td style="text-align:center"><a href="{{URL::to('/blog/categories/delete/'.$category->id)}}">{{ Lang::get('global.delete')}}</a></td>
        </tr>
@endforeach

你需要传递令牌< input type =“hidden”name =“_ token”value =“{{csrf_token()}}”>当您发送安全问题的帖子时,但在您的情况下,您不需要发布只是通过< a>标签

点赞