2016-04-29 20 views
1

ルートでは完全に動作しますが、コントローラでは機能しません。何が間違っているのでしょうか?コントローラ内でstatmentに参加できませんLaravel 5.0

public function index() 
{ 
    $positions = DB::table('position') 
     ->join('company', 'position.company_id', '=', 'company.id') 
     ->select('position.*', 'company.name') 
     ->get(); 

    // Just to check if it's working 
    print_r($positions); 
} 
+0

エラーが発生しますか? –

+0

@AlexeyMezenin FatalErrorException PositionController.php行17: クラス 'App \ Http \ Controllers \ DB'が使用中に追加されない場合、Builder.php行でBadMethodCallExceptionが発生します。2258: 未定義メソッドを呼び出します。 Query \ Builder :: table() –

+1

このコードをクラスの先頭に追加する必要があります。 'use DB;' – aldrin27

答えて

2

あなたのコントローラにこれを追加する必要があります

use DB; 

それとも、この句を使用することができます:あなたがいなかったので

$positions = \DB::table('position')... 

コントローラは、ちょうど、DBクラスを見つけることができませんそれにDBへのパスを示してください。

+0

常に_full_名前空間をインポートしてください。 – James

+0

@James、私の例が動作します。公式のドキュメントの例:https://laravel.com/docs/5.1/database#running-queries –

+0

私はそれがうまくいくことは知っていますが、私が上記の答えで言ったように、あなたは完全なインポートを使用する必要があります'app.aliases'設定は削除され、' DB'はルックアップされません。 – James

0

DBファサードをインポートする必要があります。

の完全な名前空間をこのファサードのapp.aliasesアレイから削除した場合にインポートします。

use Illuminate\Support\Facades\DB; 
関連する問題