创建另一个中间件更容易,如下所示:
namespace App\Http\Middleware;
use Closure;
class CountryCheck
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// The method `getEnabledCountries` returns an array
// with the countries enabled for the user
if(in_array($request->route('country'), Auth::user()->getEnabledCountries())) {
return $next($request);
}
// abort or return what you prefer
}
}
无论如何...country
如果用户只能看到来自他的国家/地区的帖子,则该参数在我的建议中是无用的...如果您已经知道用户区域设置并且您已经拥有此规则...为什么您必须再次检查?
在我看来,最好创建一个类似的路由,Route::get('posts')
并在控制器内部加载与用户国家相关的帖子......比如:
Post::where('locale', '=', Auth::user()->locale())->get()
或范围:
Post::whereLocale(Auth::user()->locale())->get()