У меня был похожий сценарий на одном из моих проектов.Что я сделал, так это создал Laravel Middelware, который дал мне идентификаторы меня и моих детей с помощью рекурсивной функции.
Вот код для моего файла Middleware
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);
}
, который будет показывать только идентификаторы меня и моих детей.
Надеюсь, это поможет!