在Laravel中的"存储"资源控制器之后立即显示视图



因此,目前我的"存储"资源控制器添加到数据库中的表中,并为我的"索引"页(主页)获取视图,但当我刷新此视图时,它会复制添加到数据库的最后一行。我注意到URI是'http://127.0.0.1:8000/store'而不是'http://127.0.0.1:8000/index有人能解释一下发生了什么吗?我为没有技术术语而道歉。我是一名新学徒,我正试图用自己的主动权来解决这个问题,但到目前为止运气不好。我还注意到,我的注销函数做了同样的事情,尽管URI略有不同,它仍然在URI中显示CSRF令牌,但它仍然在"注销"文件路径上显示它,这里有一个例子http://127.0.0.1:8000/logout?_token=bqTl4J3EZyKj7LS5ZvqfRB8k1Qg02IT1j4WlBG51&dir2login='

仅供参考,我已经尝试过返回$this->index();

我的注销控制器方法;

public function logout(){
Auth::logout();
return view('index',['posts'=>$this->getTable()]);
}

我的商店控制器方法:

public function store(Request $request){
//creates new row in database table
//$clientIp=$request->ip();
$post = new PostModel();
//gets email of user currently logged in
$post->email=Auth::user()->email;
$post->ip=$request->ip();
$post->content=$request->content;
$post->company=$request->company;
$post->rating=$request->rating;
//saves to database
$post->save();
return view('index',['posts'=>$this->getTable()]);
}

你试过吗

返回重定向('/');

这里要做的是让用户进入索引视图。然而,与其返回不同的视图(并且必须再次定义"posts"的逻辑),不如将用户重定向到控制器的索引方法。你有多种选择。我在下面列出了三种:

这就是你目前拥有的:

return view('index',['posts'=>$this->getTable()]);

您可以使用">操作"(ControllerName@FunctionName):

return redirect()->action('PostController@index');

或使用">命名路线":

return redirect()->route('posts.index');

或直接URL

return redirect('/');

最新更新