2016-04-24 14 views
1

私は複数のテーブルでクエリを実行していますが、結果を5つに制限したいのですが、エラーが発生します。laravelの複数のテーブルのDB ::クエリを制限する

$projects = DB::query("select * from project, project_budget,user 
        where prj_id=pb_prj_id 
        and prj_usr_id=usr_id 
        and prj_status = 'open' 
        and prj_expiry>'".date("Y-m-d H:i:s")."' 
        order by prj_updated_date desc")->take(5)->get(); 

SQLSTATE [HY000]:一般的なエラー:使用1096のノーテーブル(SQL:選択*リミット5)

+1

あなたはより安全をやっていることにする(http://stackoverflow.com/questions/27380060/using-laravel-raw-query-with-placeholder)[Laravelはプレースホルダを持っている]ことを忘れないでください。 – tadman

+1

'DB :: query'を使用する必要がある場合は、未処理クエリでなければならないので、' limit 5'は 'query by prj_updated_date desc limit 5' –

答えて

0

私は、クエリビルダを使用することにより解決しました。

$projectExpiry = date("Y-m-d H:i:s"); 
$projects =  DB::table('project') 
       ->join('project_budget', 'project.prj_id', '=', 'project_budget.pb_prj_id') 
       ->join('users', 'project.prj_usr_id', '=', 'users.prj_usr_id') 
       ->where('prj_status', '=' , 'open') 
       ->where('prj_expiry', '<' , $projectExpiry) 
       ->orderBy('prj_updated_date', 'desc') 
       ->take(5)->get(); 
関連する問題