我正在使用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
]));
}
Run Code Online (Sandbox Code Playgroud)
我得到的print_R只是标题:
Array ( [_token] => MhOTEGkR1oDMc50q0FiJmI8JCAeuCRrFCfRHcKkq [title] => test )
Run Code Online (Sandbox Code Playgroud)
编辑:
表格:
<!-- 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) -->
Run Code Online (Sandbox Code Playgroud)
Laravel 5.5更改了validate()方法以返回经过验证的字段,以便您可以轻松地将有效数据传递给模型创建,而无需使用request->only()例如.
它可能是无意中修改的$request->all(),因此您无法获得预期的结果.
如果您想获得所有内容,请尝试将字段添加到验证器,即使您不想验证它们,即没有实际规则.
例如
$validData = $this->validate(request(),[
'title'=>'required',
'body' => ''
]);
Run Code Online (Sandbox Code Playgroud)
$ validData应包含您的字段.
你也可以试试
$this->validate(request()->all() ...
Run Code Online (Sandbox Code Playgroud)
然后可能不会修改请求对象的含义$request->all()可能会按预期工作
| 归档时间: |
|
| 查看次数: |
16456 次 |
| 最近记录: |