Laravel 5.2-限制用户访问

时间:2016-03-21 19:57:30

标签: laravel-5.2 laravel-middleware

我正在开发一个Laravel 5.2项目,我有用户,旗帜和国家。 我想要实现的是每个用户都可以单击Flag菜单,它应该显示用户所在国家/地区的标志列表。

所以用户有country_id

标志有country_id。

目前我可以显示每个用户及其各自国家的标志。

这是路线。

 Route::get('flags/{Country_id}','FlagController@showFlags');

视图

<a href="flags/{{Auth::user()->country_id}}">

和我的控制器

public function showFlags($id)
{

    $country = new Country;
    $country = $country->find($id);

    $flags = $country->flags;


    return view('layouts.f.mainf',compact('flags'));

}

问题是,如果我将网址上的县ID更改为其他任何内容,它会显示另一个国家/地区的标记,如果用户国家/地区匹配网址国家/地区ID,我怎么能限制它只能访问? 我已经读过有关中间件的内容,但说实话我不知道如何使用它。

1 个答案:

答案 0 :(得分:1)

我认为这里不需要中间件,只需简单地执行此操作

public function showFlags($id)
{
    if($id != \Auth::user()->country_id)
    {
        throw new ProperException;
    }
    $country = new Country;
    $country = $country->find($id);

    $flags = $country->flags;
    return view('layouts.f.mainf',compact('flags'));
}