我想创建一个中间件来检查经过身份验证的用户是否是该项目的所有者。对于单个模型,代码很简单,看起来像:
<?php namespace App\Http\Middleware;
use Closure;
class Owner {
public function handle($request, Closure $next)
{
$id = $request->segments()[1]; //get the id parameter
$model = Model::find($id); // find the model from DB
if(!$item)
return 'not found'; //if item not found
//check if authenticated user is owner
if($item->user_id == \Auth::id()){
return $next($request);
}else{
return 'not allowed';
}
}
}
现在假设我有多个模型(ModelX、ModelY、ModelZ)并且我不想多次重写中间件句柄函数。如何在中间件中注入引用模型以使其适应我的应用程序中的多个模型?