我正在构建一个自定义Web应用程序,这里我具有指定功能,每个员工都会有一个指定(这是我的指定https://prnt.sc/nt3ioj的示例外观)
我的要求在这里显示:
主席(来自我的样本名称)将能够访问其子名称的资源
经理将能够访问其子代名称的资源(IT和技术经理主管)
我需要针对此问题的优化解决方案。
预先感谢
答案 0 :(得分:0)
我在一个项目中也遇到了类似的情况。我要做的是创建一个Laravel Middelware,它使用递归函数为我和我的孩子们提供ID。
这是我的中间件文件的代码
namespace App\Http\Middleware;
use Auth;
use Closure;
use App\Models\Nomina\Empleado;
class Subordinados
{
protected $subordinates = [];
public function handle($request, Closure $next)
{
$this->recursiveSearch(Auth::id());
$request->request->add(['subordinados' => $this->subordinates]);
return $next($request);
}
private function recursiveSearch($aUserId)
{
$empleados = Empleado::where('superiorid', $aUserId)->select('empleadoid')->get();
foreach ($empleados as $empleado) {
$this->recursiveSearch($empleado->empleadoid);
$this->subordinates[] = $empleado->empleadoid;
}
}
}
将此中间件添加到路由时,我将能够在控制器上执行以下操作:
function index(Request $request) {
Empleado::whereIn('empleadoid', $request->subordinados);
}
只会显示我和我的孩子们的身份证。
希望有帮助!