每当我被定向到广告页面然后重新加载相同的数据再次输入数据库。在保留那些紧凑变量的同时还有其他重定向页面吗?
Controller.php这样
public function StorePost(Request $request)
{
$formInput = $request->except('image');
$this->validate($request, [
'title' => 'required',
'name' => 'required',
'email' => 'required|email',
'contact' => 'required',
'model' => 'required',
'city' => 'required',
'description' => 'required',
'image'=>'image|mimes:png,jpg,jpeg|max:10000'
]);
$image = $request->image;
if($image){
$imageName = $image->getClientOriginalName();
$image->move('images',$imageName);
$formInput['image'] = $imageName;
}
Post::create($formInput);
$posts = Post::all();
return view('ad.ad',compact('name','posts'));
}}
答案 0 :(得分:0)
您可能只想将(redirect('/ad_url')
)重定向到“广告”路线/页面。可以说,也许'ControllerForAddPage'是显示你的'广告'视图的,只是取而代之的是获取该控制器中的所有帖子,而不是处理器来处理保存数据。
答案 1 :(得分:0)
我认为在商店和节目之间使用不同的路线会更好。你只需要在商店成功后重定向到索引路线。例如:
...
Post::create($formInput);
return redirect()->route('ad.index');
答案 2 :(得分:0)
您应该重定向到其他位置以避免这种情况。如果数据成功存储,则将其重定向到帖子列表URL,否则再次将其重定向到同一位置,并显示错误消息。
示例代码如下:
public function StorePost(Request $request) {
$formInput = $request->except('image');
$this->validate($request, [
'title' => 'required',
'name' => 'required',
'email' => 'required|email',
'contact' => 'required',
'model' => 'required',
'city' => 'required',
'description' => 'required',
'image' => 'image|mimes:png,jpg,jpeg|max:10000'
]);
$image = $request->image;
if ($image) {
$imageName = $image->getClientOriginalName();
$image->move('images', $imageName);
$formInput['image'] = $imageName;
}
$store = Post::create($formInput);
if($store){
//return to posts list view
return redirect('posts')->with('success', 'Post successfully stored.');
}
//redirect to the form to create post
return redirect()->back()->with('failed', 'Failed to store the post!');
}