MySQL Отображение результатов с использованием внешнего ключа на PHP - PullRequest
0 голосов
/ 14 октября 2018

У меня есть таблица USER и PORTFOLIO, в которой я хочу отобразить имя пользователя и заголовок портфеля, однако имя можно получить только с помощью идентификатора USER ID, и я не уверен, как передать информацию по PHP для достижениядругая таблица БД.

USER
id | user_fname    | user_lname
01 | John          | Smith
02 | Katherine     | Blair

PORTFOLIO
id | portfolio_title   | portfolio_user_id
19 | ClassRoom         | 02
20 | RemoteIsland      | 02
21 | MilkTown          | 01

Прямо сейчас в моем файле PHP,

if( $request->has('s_c'))
{
    $categoryid = $request->s_c;
    $results = DB::table('portfolio')
    ->leftJoin('portfolio_images', 'portfolio.id', 'portfolio_images.p_portfolio_id')
    ->where('portfolio_user_id', 'like', "%".$search_text."%")
    ->orwhere('portfolio_title', 'like', "%".$search_text."%")
    ->groupBy('portfolio.id')
    ->orderBy('portfolio.portfolio_added_date', 'DESC')
    ->paginate(12);

    if($categoryid != '')
        $results = $results->where('portfolio_category', $categoryid);
}
else
{
    $results = DB::table('portfolio')
    ->leftJoin('portfolio_images', 'portfolio.id', 'portfolio_images.p_portfolio_id')
    ->where('portfolio_user_id', 'like', "%".$search_text."%")
    ->orwhere('portfolio_title', 'like', "%".$search_text."%")
    ->groupBy('portfolio.id')
    ->orderBy('portfolio.portfolio_added_date', 'DESC')
    ->paginate(12);
}

return view('./frontend/portfoliotest', [
    'categories' => $categories,
    'results' => $results
]);

, который будет отображать его, например,

02  ClassRoom
02  RemoteIsland
01  MilkTown

Но я хочу, чтобы он достигв пользовательскую таблицу, чтобы получить

Katherine Blair  ClassRoom
Katherine Blair  RemoteIsland
John Smith       MilkTown

Я использую $ result для отображения информации из таблицы PORTFOLIO, но как я могу получить отображение fname и lname пользователя вместо его ID

1 Ответ

0 голосов
/ 14 октября 2018

Вы должны присоединиться к таблице пользователей и выбрать нужные вам атрибуты.Вы можете добавить этот фрагмент кода к запросам:

->join('users', 'users.id', '=', 'portfolio.portfolio_user_id') ->select('users.*', 'portfolio.portfolio_title')

Как подсказывает метод select, в результате получаются user_fname, user_lname, portfolio_title

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...