我是laravel的新手,想做一个送餐面板,我使用了Laravel默认的注册和登录用户类别--餐厅,然后用户登录后,用户可以使用路由(add_details)添加餐厅的详细信息,一旦用户添加了餐厅的详细信息,用户就应该... 不能够 进入该路径(add_details)
这将取决于餐厅表中的一列(is_verified),我如何检查。
我想使用Laravel的中间件。
但后来我被卡住了,laravel中间件$request变量是如何工作的,我可以在中间件中获得列值,并验证它。
如果有其他简单而有效的解决方案,我将在sidebar.blade.php中也使用它。
所以,我可以隐藏菜单
我做了一个中间件,并把它添加到kernel.php中,并在路由中使用它。
它的工作FINEBUT我想问这是正确的方式,我已经做了。
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);
}
}