2017-09-26 17 views
0

の変数を渡すには、この関数に変数を渡すことが可能です:Laravel - Laravelのクエリビルダの例を使用してクエリビルダ機能

$someVariable = 1; 

DB::table('users') 
     ->where('name', '=', 'John') 
     ->orWhere(function ($query) { 
      $query->where('votes', '>', $someVariable) 
        ->where('title', '<>', 'Admin'); 
     }) 
     ->get(); 

関数自体の外で変数にアクセスすることはできませんようです。私はエラーが発生します:未定義変数:$ someVariable

+0

「私はエラーを取得します。」どのようにエラーが何であるかを告げてはどうですか? – rtfm

+0

@rtfmが –

答えて

1

あなたの関数の後に "関数"というキーワードを使用する必要があります。 $someVariableを使用したい場合は、これが機能するはずです。

$someVariable = 1; 

DB::table('users') 
->where('name', '=', 'John') 
->orWhere(function ($query) use($someVariable) { 
    $query->where('votes', '>', $someVariable)->where('title', '<>', 'Admin'); 
})->get(); 
+0

というエラーで更新されました。 –

0
use Superglobals 

$GLOBALS["someVariable"] = 1; 
DB::table('users') 
->where('name', '=', 'John') 
->orWhere(function ($query) { 
     $query->where('votes', '>', $GLOBALS["someVariable"]) 
     ->where('title', '<>', 'Admin'); 
}) 
->get(); 
関連する問題