hasMany( 'Page' ); } public static function getPages( $user ) { $pages = Page::whereRaw( "id = page_id AND ((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" ) ->with( [ 'subpages' => function ( $q ) use ( $user ) { $q->whereRaw( "id != page_id AND ((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" ) ->orderBy( 'pageorder' ); }] ) ->orderBy( 'pageorder' ) ->get(); return $pages; } public static function getAppPages( $user ) { $appPages = Page::select( 'id', 'pageurl' ) ->whereAppPage( 'T' ) ->whereRaw( "((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" ) ->get(); return $appPages; } public static function getPageAccessByRoleLevel( $roleLevel ) { $rolePages = self::selectRaw( " id, {$roleLevel} AS rolelevel, IF(id = page_id, 'MAIN', 'SUB') AS typepage, pagename, IF((SELECT {$roleLevel} & pagelevel ) = 0, 'F', 'T') AS pageaccess" ) ->orderByRaw( "page_id, IF(id = page_id, 0, 1)" ) ->get(); return $rolePages; } }