Красноречивый разрыв запросов с оператором select, работает без него - PullRequest
0 голосов
/ 03 марта 2020

У меня есть оператор, который возвращает данные для создания файла Excel, в Laravel 4.2. Я пытаюсь свести к минимуму количество запросов, но несколько таблиц имеют одинаковые имена, поэтому я хочу использовать оператор выбора, чтобы указать необходимые столбцы и их имена. Это утверждение выглядит следующим образом:

        $foldersData = Project::where('projects.project_id', $projectId)
        ->join('folders', 'projects.project_id', '=', 'folders.project_id')
        ->join('permission_folders', 'folders.folder_id', '=', 'permission_folders.folder_id') 
        ->join('permission_groups', 'permission_folders.group_id', '=', 'permission_groups.permission_group_id')
        ->join('permission_users', 'permission_users.group_id', '=', 'permission_groups.permission_group_id')
        ->join('users', 'permission_users.user_id', '=', 'users.user_id')
        ->select('projects.name as project_name', 'folder_name', 'permission_groups.name as group_name', 'forename', 'surname', 'f_update', 'f_read', 'f_download')
        ->get(); 

Когда я удаляю оператор выбора, все работает нормально, но я не могу получить свое имя_проекта, так как поле имени переопределяется именем таблицы групп, поэтому мне приходится использовать еще один запрос на объект Project, чтобы получить его. Есть идеи, как я могу получить эти данные? Я получаю сообщение об ошибке, когда в операторе select указано следующее:

"message": "Вызов функции-члена areaPermissions () в null"

Спасибо в заранее за любую помощь!

...