我正在开发一个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,我怎么能限制它只能访问? 我已经读过有关中间件的内容,但说实话我不知道如何使用它。
答案 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'));
}