如何减少多余的代码行?(菲律宾比索)



我的控制器已经工作并完成。但我观察到代码的冗余/重复。

专门针对以下代码:

$this->authorize('applicant', $job);

这是我的控制器中的整个代码:

public function interviewees(Job $job)
{       
//more codes
}
public function applicants(Job $job)
{       
//more codes
}
public function apply(Job $job)
{   
$this->authorize('applicant', $job);
//more codes
}
public function cancel(Job $job)
{   
$this->authorize('applicant', $job);
//more codes
}
//and 5 more methods using same code of $this->authorize('applicant', $job);


我的问题有没有办法在 php 或 laravel 中我们可以处理这种情况,减少冗余代码?

您可以使用 laravel-中间件代替策略,在__construct()内申请特定方法:

php artisan make:middleware OperatorMiddleware

在句柄方法中执行一些筛选器。

class OperatorMiddleware
{
public function handle($request, Closure $next, $guard = null)
{
//do some filter here
return $next($request);
}
}

HttpKernel.php内部,注册routeMiddleware内部的中间件。

protected $routeMiddleware = [
'operator' => AppHttpMiddlewareOperatorMiddleware::class,
],

您可以针对特定方法调用它:

public function __construct()
{
$this->middleware('operator', ['only' => ['apply','cancel']]);
}

最新更新