Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 5.3查询生成器中的内部查询_Laravel_Laravel Query Builder_Inner Query - Fatal编程技术网

laravel 5.3查询生成器中的内部查询

laravel 5.3查询生成器中的内部查询,laravel,laravel-query-builder,inner-query,Laravel,Laravel Query Builder,Inner Query,我尝试使用类似Laravel的内部查询来获取数据,但我遇到了一个问题,我将值变量作为值传递,我的查询如下 $seller_name = $request->seller_name; $supplier_address = DB::table('supplier_addresses') ->where('company_main_name', function($query) { $query->select

我尝试使用类似Laravel的内部查询来获取数据,但我遇到了一个问题,我将值变量作为值传递,我的查询如下

    $seller_name = $request->seller_name;
    $supplier_address = DB::table('supplier_addresses')
        ->where('company_main_name', function($query)
        {
            $query->select('company_main_name')
                ->where('company_name',$seller_name)
                ->from('supplier_addresses')
                ->get();
        })
        ->get();

如果我传递的是静态值而不是
$seller\u name
,那么它工作得很好,我检查了
$seller\u name
是否为空,它显示错误变量未定义。

您必须使用
使用
类似

$seller_name = $request->seller_name;
$supplier_address = DB::table('supplier_addresses')
    ->where('company_main_name', function($query) use ($seller_name)
    {
        $query->select('company_main_name')
            ->where('company_name',$seller_name)
            ->from('supplier_addresses')->get();
    })
    ->get();

您必须使用
use($seller\u name)


尝试这样做,您必须像这样使用
use
在函数之后传递$variable

$seller_name = $request->seller_name;
$supplier_address = DB::table('supplier_addresses')
        ->where('company_main_name', function($query ) use($seller_name)
        {
            $query->select('company_main_name')
                ->where('company_name',$seller_name)
                ->from('supplier_addresses')
                ->get();
        })
        ->get();

您忘记使用
use

您需要使用
use
$seller\u name
传递给闭包。不要在闭包查询中使用
get()

$supplier_address = DB::table('supplier_addresses')
    ->where('company_main_name', function($query) use ($seller_name) {
        $query->select('company_main_name')
            ->where('company_name', $seller_name)
            ->from('supplier_addresses');
    })
    ->get();
您的代码也执行与此相同的操作

$supplier_address = DB::table('supplier_addresses')
    ->where('company_name', $seller_name)
    ->get();

您必须在函数中传递变量use($seller\u name)

你可以在这里查阅文件:

确保您从
$seller\u name=$request->seller\u name>获取
$seller\u name
$seller\u name
有一个值。@HirenMangukiya只需在
函数
调用后传递
使用($seller\u name)
@HirenMangukiya让它工作了?
$supplier_address = DB::table('supplier_addresses')
    ->where('company_main_name', function($query) use ($seller_name) {
        $query->select('company_main_name')
            ->where('company_name', $seller_name)
            ->from('supplier_addresses');
    })
    ->get();
$supplier_address = DB::table('supplier_addresses')
    ->where('company_name', $seller_name)
    ->get();
$seller_name = $request->seller_name; 
$supplier_address = 
    DB::table('supplier_addresses')
       ->where('company_main_name', function($query) use ($seller_name) 
       {
              $query->select('company_main_name')
                    ->where('company_name',$seller_name) 
                    ->from('supplier_addresses') ->get(); 
       }) 
    ->get();