多个表连接并仅使用一个刀片获得结果

时间:2017-10-03 21:09:58

标签: php mysql sql laravel

我正在使用Laravel 5.4来创建一个项目。 我正在使用这3个关系表。

image description

在我的主页上,我正在对9个元素进行foreach。那里的一切都很好。

image description

这是我的路线:

Route::get('/home', 'HomeController@index')->name('home');
Route::get("/game/{id_g}","HomeController@openGameHtml");
Route::get("/game/{id_g}","HomeController@openGameCss");

我的控制器:

public function openGameHtml($chosenGame, Request $request)
    {
        $chosenGame = DB::table('games')
        ->join('listhtmlgames', 'games.id_g', '=', 'listhtmlgames.id_g')
        ->select('games.*', 'listhtmlgames.*')
        ->where('listhtmlgames.id_g', $chosenGame)->get();

        //var_dump($chosenGame);
        dd($chosenGame);
        //print_r($chosenGame);

        return view('openGame', compact('chosenGame'));
    }

   public function openGameCss($chosenGame, Request $request)
    {
        $chosenGame = DB::table('games')
        ->join('listcssgames', 'games.id_g', '=', 'listcssgames.id_g')
        ->select('games.*', 'listcssgames.*')
        ->where('listcssgames.id_g', $chosenGame)->get();
        var_dump($chosenGame);
        //($chosenGame);
        //print_r($chosenGame);

        return view('openGame', compact('chosenGame'));
    }

我正试图在一个刀片上预测多个结果。在这里:

 @foreach($chosenGame as $item)
    <li><a href="">
    {{$item->name}}</a></li>
@endforeach 

问题始终是控制器中的这两个功能之一正在我的最后一个foreach中工作。我找不到让我的刀片适用于这两个功能的方法。

1 个答案:

答案 0 :(得分:0)

您在两个函数中传递相同的变量,并且在@foreach中,您正在循环该变量。 设置不同的变量并将它们传递给视图,一旦在视图循环中通过每个变量提取所需的属性。

更改:

返回视图('openGame',compact('openGameHtml'));

返回视图('openGame',compact('chosenGameCss'));

在视图中使用@foreach和每个变量名称。

问题在于,您希望使用相同的变量提取不同的结果集合,这是不可能的,您需要传递两个不同的变量。如果您有任何不便,请发布结果,以便我们提供可靠的答案。否则,请转到Official Documentation - Passing Data to view