Как получить story_id и user_id из таблиц историй. - PullRequest
0 голосов
/ 01 января 2019

Это PHP Laravel, проблема запроса SQL LeftJoin.У меня есть 2 таблицы с именами, "истории" и "любимая история".Я хочу вернуть все значения из таблицы "Stories" и совпадающие значения из таблицы "fav_story" на основе "story_id", который является общим полем в обеих таблицах.

Результат в виде массива, который вы видите "story_id", "user_id" результат пустой, который не должен быть пустым.Fav_id пуст, что нормально, потому что таблица "favour_story" пуста.

Я хочу, чтобы "story_id" выбирался из таблицы историй, а "user_id" - из таблицы "favour_story".

Это код моего контроллера:

public function fanfiction(){
    $user_id = Session('userid');
    $data['stories'] =  DB::table('stories')
    ->leftJoin('favorite_story', 'favorite_story.story_id','=','stories.story_id')
    ->Select('*')
    ->get();

    return view('fanfiction', $data);
}

Это результат приведенного выше кода в виде массива.

        [0] => stdClass Object
            (
                [story_id] => 
                [story_title] => Third Story
                [story_desc] => This is "Times" story summary.
                [img] => 2018-12-26-70pgFK87ZN.png
                [story_genre] => Fighting
                [story_character] => Aoba Y.
                [story_rating] => Adult Only
                [story_warning] => Drug Use
                [story_date] => December 26, 2018
                [series_id] => 9999999
                [user_id] => 
                [fav_id] => 
            )

        [1] => stdClass Object
            (
                [story_id] => 
                [story_title] => Second Story
                [story_desc] => This is summary of this new story.
                [img] => 2018-12-19-e6JnEpo3ky.jpg
                [story_genre] => Friendship
                [story_character] => Aijsai
                [story_rating] => G
                [story_warning] => Rape (Actual)
                [story_date] => December 19, 2018
                [series_id] => 9999999
                [user_id] => 
                [fav_id] => 
            )

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 января 2019

Измените ваш запрос на:

public function fanfiction()
{
    $user_id = session->get('userid');

    $data['stories'] =  DB::table('stories')
        ->leftJoin('favorite_story', 'favorite_story.story_id','=','stories.story_id')
        ->select('stories.*') // add other fields that you need from favorite_story table here
        ->get();

    return view('fanfiction', $data);
}

Причина, по которой это происходит, заключается в том, что он берет user_id и story_id из таблицы favorite_story, которая в данном случае равна нулю.

...