laravel - Laravel:创建按钮返回相同的视图但空白并且不创建任何记录
问题描述
我是 laravel 的新手,我正在创建一个 CMS。我创建了一个视图来创建帖子,但是在我输入数据并单击创建提交后,页面刷新并显示相同的视图,但没有输入,也没有创建记录,当它应该显示一个 Flash 消息并返回帖子索引视图时。
这是我的视图 HTML:
@section('content')
<div class="card card-default">
<div class="card-header">
{{ isset($post) ? 'Edit Post' : 'Create Post' }}
</div>
<div class="card-body">
<form action="{{ isset($post) ? route('posts.update', $post->id) : route('posts.store') }}" method="POST" enctype="multipart/form-data">
@csrf
@if (isset($post))
@Method('PUT')
@endif
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" name="title" id="title" value="{{isset($post) ? $post->title : ""}}">
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea name="description" id="description" cols="5" rows="3" class="form-control">{{isset($post) ? $post->description : ""}}</textarea>
</div>
<div class="form-group">
<label for="content">Content</label>
<input id="content" type="hidden" name="content" value="{{isset($post) ? $post->content : ""}}">
<trix-editor input="content"></trix-editor>
</div>
<div class="form-group">
<label for="published_at">Published at</label>
<input type="text" class="form-control" name="published_at" id="published_at" value="{{isset($post) ? $post->published_at : ""}}">
</div>
@if (isset($post))
<div class="form-group">
<img src="{{ asset('/storage/'.$post->image) }}" alt="" style="width: 100%">
</div>
@endif
<div class="form-group">
<label for="category">Category</label>
<select name="category" id="category" class="form-control">
@foreach($categories as $category)
<option value="{{$category->id}}">{{$category->title}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="image">Image</label>
<input type="file" class="form-control" name="image" id="image">
</div>
<div class="form-group">
<button type="submit" class="btn btn-success">
{{ isset($post) ? 'Update Post' : 'Create Post' }}
</button>
</div>
</form>
</div>
</div>
@endsection
这是方法:
public function store(CreatePostRequest $request)
{
$image = $request->image->store('posts');
Post::create([
'title'=>$request->title,
'description'=>$request->description,
'image'=>$image,
'content'=>$request->content,
'published_at' => $request->published_at,
'category_id' => $request->category
]);
session()->flash('success', 'Post Created Successfully');
return redirect(route('posts.index'));
}
我究竟做错了什么?
谢谢,
解决方案
推荐阅读
- javascript - 供应商文件上的内容安全策略 CSP unsafe-eval
- python - 使用 code.interact 时如何进入下一行?
- airflow - 要使 DAG 始终处于 ON 状态,请使用 is_paused_upon_creation 。它不工作
- javascript - 如何防止 Enter 和 Space 键重复我在 Javascript 中的最后一次点击?
- python - 密码程序:将密码结果写入文件
- python - pylint 显示工作目录内的目录的导入错误
- python-3.x - 如何在不知道 Python 中哪个更大的情况下获取两个值之间的值列表?
- mysql - 在laravel 6中搜索由空格分隔的多个单词不起作用
- c# - 如何使用一段代码处理Asp.net core上的所有Http请求
- list - 使用列表视图设置视图背景颜色时遇到问题--SwiftUI