laravel->根据模型的方法结果进行查询

pwuypxnk  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(310)

我有两张table和两个模型。所以,我有很多文凭。关系在模型中定义。
在我的编辑操作中:

$cv = Cv::where('link', '=', $link)->firstOrFail();

如果我调用关系函数 diplomas 比如这里:

$cvDiploms = $cv->diplomas;
 return $cvDiploms;

它返回一个json对象数组。
现在,我试着提出这样一个问题:

$deletedDiplomas = $cv->diplomas->whereNotIn('image', $request['test-diploma'])->get();

它会返回一个错误:
在第272行的/home/name/project/app/http/controllers/cvscontroller.php中调用并定义的illuminate\support\collection::get()缺少参数1
我应该如何调用该查询来获取所有 Cv's diplomas ,在哪里 'image'not in $request['test-diploma'] ?

x4shl7ld

x4shl7ld1#

您可能正在尝试对数组对象进行查询。您应该使用关系本身进行查询。试试这个:

$deletedDiplomas = $cv->diplomas()
                      ->whereNotIn('image', $request['test-diploma'])
                      ->get();
uurity8g

uurity8g2#

$cv->diplomas 自动呼叫 get() 因此它返回一个集合。那你就给我打电话 get() 再说一遍,但是收集方法 get() 需要一个参数。
你需要写信 $cv->diplomas() (引用函数而不是属性)来获取查询,然后可以在调用之前对其进行筛选 get() ```
$deletedDiplomas = $cv->diplomas()->whereNotIn('image', $request['test-diploma'])->get();

相关问题