मैं लार्वा 5.7 का उपयोग कर रहा हूँ। मेरे पास एक उपयोगकर्ता तालिका है जिसमें कॉलम user_type है जहां

0 = default users
1 = Professionals
2 = Facilities
8 = Employees
9 = Managers
10 = Administrator

और दूसरा कॉलम जो बूलियन है is_premium जो या तो सही या गलत देता है।

मैंने व्यवस्थापक के लिए एक मिडलवेयर बनाया है

namespace App\Http\Middleware;

use Closure;
use Auth; 

class IsAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::user() &&  Auth::user()->usertype == 10) {
            return $next($request);
         }

        return redirect('/administration/dashboard');
    }
}

और मैंने इसे मार्गों/web.php फ़ाइल में इस्तेमाल किया है:

Route::group(['prefix' => 'administration', 'middleware' => 'admin'], function(){
  Route::get('/dashboard', 'Admin\DashboardController@index')->name('admin.dashboard');
});

जब मैं व्यवस्थापक डैशबोर्ड मार्ग पर जाता हूं तो यह कहता है

ERR_TOO_MANY_REDIRECTS

मुझे पता है कि मैं कुछ गलत कर रहा हूँ...यह क्या है?

और मैं अन्य उपयोगकर्ता प्रकारों के लिए भी मिडलवेयर बनाने और मार्ग फ़ाइल में उपयोग करने का अनुमान लगा रहा हूं। क्या यह करने का सही तरीका है?

0
user6780526 3 अक्टूबर 2018, 22:51

1 उत्तर

सबसे बढ़िया उत्तर

पहले झूठे तर्क का प्रयास करें:

...
public function handle($request, Closure $next)
{
    if ( ! (Auth::user() &&  Auth::user()->usertype == 10) ) {
        return redirect('/home');
    }

    return $next($request);
}
...
1
adam 3 अक्टूबर 2018, 20:07