如何将请求对象从表单传递给Php

时间:2019-07-14 00:22:16

标签: php laravel forms request

我正在使用Laravel 5.7开发Laravel应用程序,并且存在以下问题:

  1. 我正在将控制器的请求对象“ req”传递给视图。
  2. 在视图中,我显示了传递给视图的请求对象的内容
  3. 我在同一视图中有一个表单,该表单假定将同一请求对象“ req”转发到控制器,在该控制器中我对其进行一些处理,但无法弄清楚如何发送整个请求对象而不是发送单个元素。

我想做这样的事情

<form method="post" action="/story/editorsubmit" enctype="multipart/form-data">
    @csrf

    <input type="hidden" name="fullobject" value={{ $req }}>

    <button type="submit" name="submitButton" value="edit" class="btn btn-primary">Edit</button>
</form>

1 个答案:

答案 0 :(得分:2)

从表单提交的数据成为请求。另外,您还缺少一些报价。

<form method="post" action="/story/editorsubmit" enctype="multipart/form-data">
    @csrf

    <input type="hidden" name="fullobject" value="{{ $req }}">

    <button type="submit" name="submitButton" value="edit" class="btn btn-primary">Edit</button>
</form>

可以使用提交属性的名称在提交表单的控制器中访问当前数据。但是我怀疑这是否可以工作,因为$ req是对象,而不是字符串。

$object = request('fullobject');

但是理想情况下,您应该分别定义属性。我假设这些隐藏元素实际上代表可编辑的表单输入?如果什么都没有改变,那么这样做就没有意义。

编辑:添加了处理数组的方法。

<form method="post" action="/story/editorsubmit" enctype="multipart/form-data">
    @csrf

    @foreach ($req->all() as $key => $value)
        @if (is_array($value))
            @foreach($value as $v)
                <input type="hidden" name="{{ $key }}[]" value="{{ $v }}">
            @endforeach
        @else
            <input type="hidden" name="{{ $key }}" value='{{ $value }}'>
        @endif
    @endforeach

    <button type="submit" name="submitButton" value="edit" class="btn btn-primary">Edit</button>
</form>

然后提交的请求将包含以前的各个属性。