【问题标题】:Browser Back Button Laravel浏览器返回按钮 Laravel
【发布时间】:2018-01-02 09:21:38
【问题描述】:

所以我有这个后退按钮,我在创建建筑物时使用它,然后主页有一个后退按钮,用于编辑及其工作。

问题是我有一个OfficePage,它也有创建和编辑,每次我点击创建办公室时,办公室页面的后退按钮都不起作用查看我创建的办公室,这里有我的路线和代码。

这是构建的后退按钮代码

<a href="{{route('index')}}" class="btn btn-default btn-md"> GO Back</a>

这是office的后退按钮代码

<a href="javascript:history.back()" class="btn btn-default">Back</a> 

路线

Route::get('/home', 'HomeController@index')->name('home');

Route::get('/', 'BuildingController@index')->name('index');

Route::get('building/{id}', 'PageController@show');

Route::get('buildings/create', 'BuildingController@create')->name('createbform')

Route::post('building/create/store', 'BuildingController@store')->name('createbuilding');

Route::get('building/{id}/edit', 'BuildingController@edit');

Route::post('building/{id}/edit', 'BuildingController@update')->name('editbuilding');

Route::get('building/{id}/delete', 'BuildingController@destroy');

Route::get('office/{id}', 'OfficeController@show')->name('officeMenu');

Route::get('building/{id}/offices/create', 'OfficeController@create')->name('createofficeform');

Route::post('building/{id}/offices/create/store', 'OfficeController@store')->name('createoffice');

Route::get('building/{id}/offices/edit', 'OfficeController@edit')->name('editofficeform');

Route::post('building/{id}/offices/edit', 'OfficeController@update')->name('editoffice');

Route::get('offices/{id}/delete', 'OfficeController@destroy')->name('deleteoffice');

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    使用url()-&gt;previous():

    <a href="{{ url()->previous() }}" class="btn btn-default">Back</a> 
    

    如果你想返回 2 个请求,use this solution

    【讨论】:

    • 它不会回到我的officepage,当我单击create office 并单击返回按钮时,它会停留在createofficepage @Alexey Mezenin
    • @TeamPlarJarj 您在发送表单时使用GET 请求吗?你应该使用POST。或者直接返回2 requests back
    • @TeamPlarJarj 正确的方法是在向store() 方法提交表单时使用POSTlaravel.com/docs/5.5/controllers#resource-controllers
    • 哦,等一下它的帖子..我用它来创建办公室
    • @TeamPlarJarj 你确定是POST 吗?因为您在前面问题中显示的所有形式中都使用了GET。另外,您是否尝试过 2 链接返回解决方案?
    【解决方案2】:

    当使用“history.back”功能时,浏览器会从它的缓存中给你一个副本,而不是重新加载页面。 这里最好的方法是不要使用“history.back”功能,而是使用正确的路线来获取您页面的新副本。

    【讨论】:

    • 简单地给你的链接一个明确的路由去,比如 返回
    【解决方案3】:

    你也可以试试这个功能,

    /**
     * Method to redirect to the previous page
     *
     * Add to one of your helpers
     *
     * USEAGE: redirectPreviousPage();
     */
    if ( ! function_exists('redirectPreviousPage'))
    {
        function redirectPreviousPage()
        {
            if (isset($_SERVER['HTTP_REFERER']))
            {
                header('Location: '.$_SERVER['HTTP_REFERER']);
            }
            else
            {
                header('Location: http://'.$_SERVER['SERVER_NAME']);
            }
    
            exit;
        }
    }
    

    HTML

    <a href="{{ redirectPreviousPage() }}" class="btn btn-default">Back</a> 
    

    如果您的项目中有核心文件,您也可以使用此功能。

    【讨论】:

      【解决方案4】:

      在 Laravel 中,你可以这样做:

      &lt;a href="{{Request::referrer()}}"&gt;Back&lt;/a&gt;(假设您使用的是刀片)。

      {{ URL::previous() }}

      【讨论】:

      • 是的,但问题是当我按下创建 Office 按钮并单击返回按钮时,它不会返回到 officepage,而是停留在 createofficepage 上
      猜你喜欢
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      相关资源
      最近更新 更多