调用未定义的方法 Illuminate\Database\Query\Builder::when()

Posted

技术标签:

【中文标题】调用未定义的方法 Illuminate\\Database\\Query\\Builder::when()【英文标题】:Call to undefined method Illuminate\Database\Query\Builder::when()调用未定义的方法 Illuminate\Database\Query\Builder::when() 【发布时间】:2016-05-11 05:52:09 【问题描述】:

使用 Database: Query Builder Conditional Statements

时,我在 laravel 5 中遇到 undefined when() 方法的错误

https://laravel.com/docs/5.2/queries#conditional-statements

调用未定义的方法Illuminate\Database\Query\Builder::when()

$job = $request->input('Job');
$EmpDetails = DB::table('EMPLOYEES')->when($job, function ($query) 
    return $query->where('Job', '=', $job);
)->get();
print_r($EmpDetails);   

【问题讨论】:

【参考方案1】:
$EmpDetails = DB::table('EMPLOYEES')->where('JOB',$job)->get();

我认为这应该可行。

编辑:您可能想在哪里使用高级。在这种情况下:

$EmpDetails = DB::table('EMPLOYEES')->where(function($query) use ($job)
        
            $query->where('JOB',$job);
        )->get()

【讨论】:

这很好,但我的要求没有满足。请参阅laravel.com/docs/5.2/queries#conditional-statements 为什么我们使用 when() 函数

以上是关于调用未定义的方法 Illuminate\Database\Query\Builder::when()的主要内容,如果未能解决你的问题,请参考以下文章

调用未定义的方法 BelongsTo::attach()

未调用自定义 UIButton 的 setIsSelected 方法

调用未定义的方法 Cake\ORM\Entity::query() CakePhp

致命错误:未捕获的错误:调用未定义的方法 stdClass::option();

调用类方法时出现“调用未定义函数”错误

调用未定义的方法 Illuminate\Foundation\Application::bindShared()