除非我选择主键,否则Laravel Eager加载将无法工作

我有两个表:学生和俱乐部,它们之间存在多对多关系。

我想返回所有学生及其俱乐部,作为ajax调用的一部分,但是我想排除学生主键,因为这会提供有关系统中学生数量的意外信息。

$students = Student::all()
     ->with('clubs')
     ->select('students.name', 'students.grade', 'students.birthday')
     ->get();

这将为俱乐部返回一个空数组。 如果我将第三行更改为包含id,则可以正常工作。

$students = Student::all()
     ->with('clubs')
     ->select('students.id', 'students.name', 'students.grade', 'students.birthday')
     ->get();

排除主键的最佳方法是什么?我是否应该通过在查询后循环遍历集合来删除它?

评论
墨小沫
墨小沫

I think you can use forget from collection

https://laravel.com/docs/5.8/collections#method-forget

点赞
评论