8

クエリビルダークロージャに変数を渡す際に問題が発生しました。コードは次のとおりです。

function get_usersbyname($name){
    dd($name);
    $resultset = DB::table('users')->where(function($query){
        $query->where('username', 'LIKE', $name);
    });
....
}

実行するとエラー「undefined name variable」が返されますが、すでに$name変数を渡してその存在を確認しています。また、クエリビルダーの無名関数に変数を渡す方法を説明するリソースが見つかりません。この問題を手伝ってくれませんか。

4

1 に答える 1

33

その変数を次のように使用するように匿名関数に指示する必要があります...

その変数は無名関数のスコープ外にあるため、次の例に示すようにuseキーワードを使用して渡す必要があります。

function get_usersbyname($name){
    dd($name);
    $resultset = DB::table('users')->where(function($query) use ($name) {
        $query->where('username', 'LIKE', $name);
    });
....
}
于 2013-02-21T16:26:01.153 に答える