1

私のモデルを介してFluentで2つのテーブルを結合しようとしていますが、mysqlクライアントでクエリを実行し、必要なリターンを返します。

これは標準のクエリです

select `songlist`.*, `queuelist`.* from `songlist` inner join `queuelist` on `songlist`.`id` = `queuelist`.`songID` where `queuelist`.`songID` = songlist.ID and `songlist`.`songtype` = 'S' and `songlist`.`artist` <> "" order by `queuelist`.`sortID` ASC limit 4

探しているデータを返します。

今流暢を使用して私のモデルに。

私はこれが好きでした。

public static function comingUp()
{

    $getcomingUp = DB::table('songlist')
    ->join('queuelist', 'songlist.id', '=', 'queuelist.songID')
    ->select('songlist.*','queuelist.*')

    ->where('queuelist.songID', '=', 'songlist.ID')
    ->where('songlist.songtype', '=', 'S')
    ->where('songlist.artist', '<>', '')        
    ->orderBy('queuelist.sortID', 'ASC')
    ->take('4')
    ->get();

    return $getcomingUp;



}

データがこのように見えるかどうかをテストするコントローラー

public function getComingUp()
{
    $getcomingUp = Radio::comingUp();

foreach ($getcomingUp as $cup)
 {
echo $cup->title;
 }


 // return View::make('comingup', compact('comingup'));


}

foreach がデータを返さないことがわかるように、laravel でエラーがまったく発生しないため、クエリに問題はありません。しかし、探しているデータを表示するための foreach を取得することはできません。

$cup->songlist.title; で試してみます。そしてそれはエーテルを働かせません。

ありがとうございました。繰り返しますが、私の英語で申し訳ありません。

4

1 に答える 1

1

このようなことができます。

public static function comingUp()
{

    $getcomingUp = DB::table('songlist')
      ->select('songlist.*','queuelist.*')
    ->join('queuelist', 'queuelist.songID', '=', 'songlist.id')



    ->where('songlist.songtype', '=', 'S')
    ->where('songlist.artist', '<>', '')        
    ->orderBy('queuelist.sortID', 'ASC')
    ->take('4')
    ->get();

    return $getcomingUp;



}
于 2013-09-21T09:53:51.357 に答える