Не удается получить желаемый результат при загрузке данных Laravel - PullRequest
0 голосов
/ 03 ноября 2018

Здравствуйте, друзья! Я пытаюсь получить данные в laravel, но получаю сообщение об ошибке SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'users.id' в 'предложении where' (SQL: выберите publications. * , education. research_area из education внутреннее соединение publications в education. user_id = publications. user_id, где users. id = 5). Пожалуйста помоги. Мой контролер дан.

public function publicationpdf()
    {
        $user_id = Auth::user()->id;
        $data['data'] = DB::table('education') ->join('publications', 'education.user_id', '=', 'publications.user_id')->select('publications.*','education.research_area') ->where('users.id',$user_id)
            ->get();
        if(count ($data)>0){
            return view('pdf/publicationpdf',$data);
        }
        else
        {
            return view('pdf/publicationpdf');
        }
    }

Я не получаю желаемого результата. при использовании 'publishing.user_id', $ user_id, я получаю следующий результат. result in view

Пока у меня только две строки текущего логина пользователя в таблице публикаций данного рисунка. publications table in database

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018
DB::table('education') ->join('publications', 'education.user_id', '=', 'publications.user_id')->select('publications.*','education.research_area') ->where('users.id',$user_id)
        ->get();

, если у вас есть столбец user_id в таблице education. тогда просто используйте ->where('user_id',$user_id) вместо ->where('users.id',$user_id)

0 голосов
/ 04 ноября 2018

Пожалуйста, проверьте эту ссылку

$user_id = Auth::id();
$data['data'] = DB::table('education')
               ->join('publications', function ($join) use($user_id){
                  $join->on('education.id', '=', 'publications.user_id')
                       ->where('publications.user_id',$user_id);
               })
                  ->select('publications.*','education.research_area')
                  ->get();

но вы должны изменить структуру базы данных, потому что нет никакой связи между публикациями , Education таблицами. из вашей структуры БД у каждого пользователя может быть много публикаций и много образований, так что публикация имеет какие образование является вопросом ??

0 голосов
/ 03 ноября 2018

Таблица users не отображается в вашем запросе. Предположительно, вы должны ссылаться на столбец publications.user_id:

$data['data'] = DB::table('education')
    ->join('publications', 'education.user_id', '=', 'publications.user_id')
    ->select('publications.*', 'education.research_area')
    ->where('publications.user_id', $user_id)
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...