首页 > 解决方案 > 如何在laravel中检查餐厅是否经过验证

问题描述

我是 laravel 的新手,正在尝试为送餐制作面板添加了用户不应前往该路线的餐厅详细信息( /add_details)

这将取决于餐厅表中的一列(is_verified)我如何检查

我正在考虑使用 Laravel 中间件

但后来我被卡住了 laravel 中间件 $request 变量如何工作我如何在中间件中获取列值并验证它

或者如果有任何其他简单但有效的解决方案,我也会在 sidebar.blade.php 中使用它

这样我就可以隐藏菜单

标签: laravellaravel-middleware

解决方案


我制作了一个中间件并将其添加到 kernel.php 并在路由中使用它

它工作正常,但我想问这是我做的正确方式

Route::get('/manage_cuisines', 'RestaurantCuisineController@create')->name('manage-cuisines')->middleware('restaurant_verified');

    <?php

    namespace App\Http\Middleware;

    use Closure;
    use Auth;
    use \App\User;
    use \App\Restaurant;

    class CheckRestaurantVerification
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {

            $restaurant = Restaurant::find(User::find(Auth::id())->restaurant_id);
            if($restaurant->is_verified == 0)
            {
                return redirect('home');
            }
            return $next($request);
        }
    }

推荐阅读