加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel:发布后加载视图

发布时间:2020-12-14 19:34:31 所属栏目:大数据 来源:网络整理
导读:在Codeigniter中,我曾经在发布数据后调用了view函数.如下; 例如:我有一个show_products()函数,它将显示产品列表.当用户添加新产品时,我将数据发布到add_product()函数中.如果过程成功,我将不会重定向到产品页面,而是在add_product()中加载显示功能,如下所示
在Codeigniter中,我曾经在发布数据后调用了view函数.如下;

例如:我有一个show_products()函数,它将显示产品列表.当用户添加新产品时,我将数据发布到add_product()函数中.如果过程成功,我将不会重定向到产品页面,而是在add_product()中加载显示功能,如下所示:

//Inside the add_product() function
if(success){

   $this->show_products();

}

我想,重新加载页面是没有意义的.由于我们已经在post函数中,因此我们可以在数据库插入后立即设置视图.

但是在laravel中,我看到人们在发布数据后重定向.

例如:

//Inside the postProduct() function
if(success){

   return Redirect::to('products');

}

我试过了;

//Inside the postProduct() function
if(success){

   $this->getIndex();// this is my product display function

}

但它不起作用.

通过在post函数中加载视图而不是每次重定向都可以获得好处吗?

如果是这样,我怎么能用laravel达到同样的目的?

非常感谢!

解决方法

这不是关于Laravel,而是关于一种好的或正确的做事方式.换句话说,在成功提交表单后,重定向到另一个路径/页面是一种很好的编程习惯.

即使在CodeIgniter或普通的Php中,我也喜欢这种方法,并鼓励其他开发人员这样做.那么,问题是为什么这个重定向比从同一个请求直接调用另一个方法来显示另一个视图/页面更好?

这是该过程的生命周期:

>您将表单发布到路径/操作页面.
>您验证提交的数据,并在成功验证后将提交的数据插入数据库,否则您将重定向回到具有错误和旧用户输入的表单.

所以.假设您已提交表单并已成功将数据保存到数据库中.保存后,你做了这样的事情:

return View::make('...')->with('success','Data saved!');

在这种情况下,您的用户可以在屏幕上看到成功消息但是如果用户按下键盘上的f5键来刷新页面(可能是偶然),表单将再次提交给同一个动作,整个过程将再次重复.

因此,如果您在表单提交后进行了重定向,则刷新页面将不再向该表单发出任何请求.

谷歌搜索结果在form resubmit on refresh.上,查看链接,可能是第一个/第二个,你会更好地了解问题以及表单提交后重定向的好处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读