Laravel使用()方法给出:调用未定义的方法Illuminate\Database\Query\Builder::with()

kq0g1dla  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(107)

执行以下查询时:
$jobs = DB::table('jobs')->with('companies:name')->where('published', 0)->get();
我得到:
调用未定义的方法Illuminate\Database\Query\Builder::with()。
我希望我所有的作业都是published == 0,与companies name有关系。我不明白为什么这里没有定义,你们能帮我吗?

gdrx4gfi

gdrx4gfi1#

要使用Illuminate\Support\Facades\DB实现您想要的功能,您可以像这样做:

$jobs = DB::table('jobs')
    ->select('jobs.*', 'companies.name')
    ->join('companies', 'jobs.company_id', '=', 'companies.id')
    ->where('jobs.published', 0)
    ->get();

但是最好使用Laravel Eloquent ORM,因为它Map数据库,而不是通过查询构建器直接访问。

相关问题