首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 7-为什么Toastr在我实现中间件之后突然停止显示?

Laravel 7-为什么Toastr在我实现中间件之后突然停止显示?
EN

Stack Overflow用户
提问于 2020-06-19 07:16:48
回答 1查看 222关注 0票数 1

我在这里使用了一个Toastr插件-- TJGazel Laravel Toastr,它在我项目的所有部分都能很好地工作,我在其中实现了Toastrs (所有这些插件都在我的控制器中实现)。

但是当我试图将我所有的网络路由放到他们停止显示的中间件中时,通过,它不会在控制台、开发者工具(Network )和laravel 中显示任何错误或消息。它们只不显示/不显示。

我对这个问题的唯一提示是中间件,因为我有一个旧项目的副本(就在我实现中间件之前),而我的旧项目中的所有工作都没有问题。

下面是我的路由的全部代码,其中实现了中间件 (web.php):

代码语言:javascript
复制
<?php

use Illuminate\Support\Facades\Route;
use Spatie\Activitylog\Models\Activity;

Auth::routes();

Route::get('/', function () {
    return view('welcome');
});

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

Route::group(['middleware' => ['user_middleware']], function() //Group middleware for authenticated / logged-in users
{
Route::get('/logout', 'Auth\LoginController@logout');
Route::resource('master/vendor', 'Master\VendorController');
Route::get('vendor/datatable', 'Master\VendorController@datatable')->name('vendor/datatable');

Route::resource('master/product', 'Master\ProductController');
Route::get('product/datatable', 'Master\ProductController@datatable')->name('product/datatable');
Route::get('product/datatableTrash', 'Master\ProductController@datatableTrash')->name('product/datatableTrash');
Route::post('product/undoTrash/{id}', 'Master\ProductController@undoTrash')->name('product/undoTrash/{id}');
Route::get('master/product/history/{id}', 'Master\ProductController@history')->name('master/product/history/{id}');

Route::resource('transaction/purchase-order', 'Transaction\PurchaseController');
Route::get('transaction/purchase-order/vendor/popup_media', 'Transaction\PurchaseController@popup_media_vendor')->name('transaction/purchase-order/vendor/popup_media');
Route::get('transaction/purchase-order/product/popup_media/{id_count}', 'Transaction\PurchaseController@popup_media_product')->name('transaction/purchase-order/product/popup_media/{id_count}');
Route::get('browse-product/datatable', 'Master\ProductController@datatable_product')->name('browse-product/datatable');
Route::get('browse-vendor/datatable', 'Master\VendorController@datatable_vendor')->name('browse-vendor/datatable');
Route::get('purchase-order/datatable', 'Transaction\PurchaseController@datatable')->name('purchase-order/datatable');
Route::post('transaction/purchase-order/receive/{id}', 'Transaction\PurchaseController@received')->name('transaction/purchase-order/received/{id}');
Route::get('transaction/purchase-order/print/{id}', 'Transaction\SaleController@print')->name('transaction/purchase-order/print/{id}');

Route::resource('transaction/sales', 'Transaction\SaleController');
Route::get('transaction/sales/product/popup_media/{id_count}', 'Transaction\SaleController@popup_media_product')->name('transaction/sales/product/popup_media/{id_count}');
Route::get('sales/datatable', 'Transaction\SaleController@datatable')->name('sales/datatable');
Route::get('transaction/sales/print/{id}', 'Transaction\SaleController@print')->name('transaction/sales/print/{id}');

Route::get('transaction/stock', 'Transaction\StockController@index')->name('transaction/stock');
Route::get('transaction/stock/product/popup_media', 'Transaction\StockController@popup_media_product')->name('transaction/stock/product/popup_media');
Route::post('transaction/stock', 'Transaction\StockController@update')->name('transaction/stock');
Route::get('stock/report', 'Transaction\StockController@report')->name('stock/report');

Route::resource('user', 'UserController');
Route::get('/datatable_Activities', 'UserController@datatable_Activities')->name('datatable_Activities');
Route::get('/RecentActivities', 'UserController@RecentActivities')->name('RecentActivities');
Route::get('/password', 'UserController@Password');
//Route::get('/calendar', 'UserController@Calendar');
Route::post('user/updatePassword', 'UserController@updatePassword')->name('user.updatePassword');

});

这是我的UserMiddleware.php代码

代码语言:javascript
复制
<?php

namespace App\Http\Middleware;
use Closure;

class UserMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!$request->user())
        {
            return redirect('unauthorized');
        }
        return $next($request);
    }
}

当我尝试使用dd()时,它会显示Toastr返回的内容,并找到它应该返回的值(我没有发现错误或警告消息)。再说一次,唯一的问题是它没有显示烤面包。

下面是我在一个控制器中实现Toastr的方法:

代码语言:javascript
复制
Toastr::success('Product created Successfully', 'Success');
return redirect()->route('product.index');

我的布局文件('layouts.backend.app')包含烤面包所需的脚本和css文件(首先加载JQuery,然后引导toastr -- CSS和JS文件)。我还在每个刀片文件中包含了{!! toastr()->render() !!},使用@extends('layouts.backend.app')

我一直在寻找与这个问题有关的东西,但什么也没有发现。造成这一问题的真正原因是什么,我如何解决这个问题?

更新:

在调试过程中,我发现当使用return view()时,它可以工作,但是当涉及到return redirect()->route('');return redirect()->back();时,它不会显示。

更新(2/3/2021):

这个问题似乎与我在路由(web.php)中使用的中间件有关,在不删除中间件的情况下,仍然不知道如何修复它。

EN

回答 1

Stack Overflow用户

发布于 2021-02-10 05:54:29

根据来自链接的参考,问题可能是由于StartSession中间件。尝试重新排序kernel.php中的中间件,或者可能会有其他一些可能导致问题的包,因为根据上面的链接,Spatie正在引起session.Maybe的问题--容器中覆盖了某个类的配置?

因此,如果您能够提供composer.json,我们可能能够找到导致问题的包。该包可能是可能导致会话问题的其他包。

还尝试在config/app.php中重新排序toastr服务提供程序,以达到最后位置。

如果没有这些作品,请使用以下代码:https://codeseven.github.io/toastr/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62465173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档