Laravel 5.5 request() - > all()没有获得所有输入

时间:2017-07-07 19:59:24

标签: php laravel

我正在使用Laravel 5.5。我正在尝试创建一个帖子,但是当我请求所有()数据从请求实例中转储时,我没有打印出所有字段。

以下是我创建帖子的代码:

   /**

    * Persist new post.

    */
public function store()
{
    $this->validate(request(),[

        'title'=>'required' 
    ]);

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

        $path = CreatePhotoThumbnail(request()->file('photo'));

        auth()->user()->addPost(new Posts( [
        'title'=>request('title'),
        'body'=>request('body'),
        'photo'=> $path

    ]));
}

所有我进入print_R只是标题:

Array ( [_token] => MhOTEGkR1oDMc50q0FiJmI8JCAeuCRrFCfRHcKkq  [title] => test )

编辑:

表格:

  <!-- Main (left side) -->

  <section style="margin-top:20px;">

    <div class="row">
        <div class="col-sm-12">

          <!-- post -->
          <article class="blog-post">


          <div class="post-entry">

          <h2>Create a Blog Post</h2>

          <p>Be as specific as u can:</p>


          <form name="" action="/posts/create" method="post" class="comment-form" enctype="multipart/form-data">
          {{csrf_field()}}
          <div style="display: none;">
          <input type="hidden" name="_wpcf7" value="79" />
          <input type="hidden" name="_wpcf7_version" value="4.1" />
          <input type="hidden" name="_wpcf7_locale" value="en_US" />
          <input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f79-p64-o1" />
          <input type="hidden" name="_wpnonce" value="ebcdc94d2e" />
          </div>
          <div class="row">


          <div class="col-md-12">
            <label for="title">Post Title</label>
            <input id="title" type="text" placeholder="Post Title" name="title">
          </div>


          <div class="col-md-12">
            <label for="body">Body:</label>
            <textarea name="body" id="body" placeholder="Post body" rows="10"></textarea>
          </div>

          <div class="col-md-12" id="drop">
              <label for="photo">Upload a post picture</label>
              <input type="file" id="photo"  name="photo" >
          </div>

          <div class="col-md-12"><input type="submit" value="Create Post" class="submit-button" /></div>
          </div>
          </form>


          </div>
          <div class="col-md-12" style="padding: 0px; margin:0px;">
              @include('layouts.errors')
          </div>
          </article>
          <!-- contact end -->

        </div><!-- end col-md-12 -->
    </div><!-- end row -->

   </section>
   <!-- END Main (left side) -->

1 个答案:

答案 0 :(得分:5)

Laravel 5.5更改了validate()方法以返回经过验证的字段,以便您可以轻松地将有效数据传递给模型创建,而不使用request->only()

有可能无意中修改了$request->all(),因此您无法获得预期的结果。

如果您想获取所有内容,请尝试将字段添加到验证器,即使您不想验证它们,即没有实际规则。

例如

$validData = $this->validate(request(),[
    'title'=>'required',
    'body' => ''
]);

$ validData应包含您的字段。

您也可以尝试

$this->validate(request()->all() ...

然后可能不会修改请求对象,这意味着$request->all()可能会按预期工作