Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 仅加载关系的ID(清除)_Laravel_Laravel 5.5 - Fatal编程技术网

Laravel 仅加载关系的ID(清除)

Laravel 仅加载关系的ID(清除),laravel,laravel-5.5,Laravel,Laravel 5.5,我有一个简单的应用程序,使用Laravel 5.5.13 public function index() { return Pet::all(); } 这列出了所有的宠物。我有多对多关系,许多用户可以拥有同一只宠物(宠物的人类家庭) 我想加载那些用户 执行返回Pet::with('users')->get()可以做到这一点,但它会加载所有类型的过量信息,如用户api_令牌等,我只想选择一些字段,如id和名称: 我希望在上面的屏幕截图中得到用户:[1,12] 我试过像这样拔毛retur

我有一个简单的应用程序,使用Laravel 5.5.13

public function index()
{
    return Pet::all();
}
这列出了所有的宠物。我有多对多关系,许多用户可以拥有同一只宠物(宠物的人类家庭)

我想加载那些用户

执行
返回Pet::with('users')->get()
可以做到这一点,但它会加载所有类型的过量信息,如用户api_令牌等,我只想选择一些字段,如id和名称:

我希望在上面的屏幕截图中得到
用户:[1,12]


我试过像这样拔毛
return Pet::with('users')->get()->pull('id')
但这只会给我id。

如果您只想在所有匹配用户至少有一只宠物的情况下获取用户id,您可以尝试:

// Retrieve all users that have at least one pet
return User::has('pets')->get(['id']);
如果我误解了您的意思,您仍然需要所有Pet信息,您可以使用冒号获取关系中的特定列:

// Returns all Pets, along with their users' IDs
return Pet::with('users:id')->get();
  • ,查询关系是否存在
  • ,加载特定列

您可以选择如下特定字段:

Pet::with(['users' => function($query) { $query->select('id', 'name'); }])->get()

谢谢你,先生,这太酷了!它更接近于我所需要的,但并不确切,请你转告:我确实需要列出所有宠物信息,而不是至少有一只宠物的用户。通过
Pet::With('users:id')->get()
它现在给了我:一个对象数组,但它包含了pivot--谢谢,这很酷!但是,我只需要users条目中的一个id数组。它给出了一个对象数组,包括
pivot
-也许这对你来说是有效的
Pet::with(['users'=>function($query){$query->select('id',name')->不带('pivot');}])->get()
谢谢@Leonardo,但它没有删除pivot:(,它仍然是一个带有
{id:12}
的对象数组,而不是一个id整数数组:(