Laravel 7 - Почему Toastr внезапно перестал отображаться после того, как я внедрил промежуточное ПО? - PullRequest
0 голосов
/ 19 июня 2020

Я использовал плагин Toastr, который у меня был здесь TJGazel Laravel Toastr , и он отлично работал во всех частях моего проекта, где я реализовал тостеры (все они реализованы во всех моих контроллерах ).

Но когда я попытался поместить все свои веб-маршруты в промежуточное ПО, они перестали отображаться, хотя не показывает никаких ошибок или сообщений в консоли, инструменте разработчика (вкладка «Сеть») и laravel файлы журналов . Они только не отображаются / не отображаются.

Мой единственный намек на причину этой проблемы - это промежуточное ПО, потому что у меня есть копия моего старого проекта (прямо перед тем, как я реализовал промежуточное ПО) и ВСЕ тостер в моем старом проекте работает без проблем.

Вот мой весь код для моих маршрутов , где реализовано мое промежуточное ПО (web. php):

<?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:

<?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::success('Product created Successfully', 'Success');
return redirect()->route('product.index');

И мой файл макета ('layouts.backend.app') содержит скрипт и css файлы, необходимые для тостера (где Сначала загружается JQuery, затем bootstrap, затем Toastr - файлы CSS и JS). И я также включил {!! toastr()->render() !!} в каждый файл лезвия, использующий @extends('layouts.backend.app').

Я искал, связанный с этой проблемой, но пока ничего не нашел. В чем может быть настоящая причина этого и как решить эту проблему?

ОБНОВЛЕНИЕ:

Во время отладки я обнаружил, что при использовании return view() он работает, но когда дело доходит до return redirect()->route(''); или return redirect()->back();, он не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...