Php Laravel多对多关系获取数据

Php Laravel多对多关系获取数据,php,mysql,laravel-4,many-to-many,Php,Mysql,Laravel 4,Many To Many,这是我的校园模型 我已经剥去了模型的可读性 当然还有一个名为campus\u user的连接表,id为,campus\u id,user\u id 用户可以订阅校园 现在我想要两样东西 1.让所有用户订阅特定校园 2.检查特定用户(如id=1)是否订阅了特定校园(如id=2) 最“雄辩”的方式是使用关系查询: 一个简单的例子是返回任何校园的用户 // Get users with any campus relationship. $users = User::has('campuses')-&

这是我的校园模型 我已经剥去了模型的可读性 当然还有一个名为campus\u user的连接表,id为,campus\u id,user\u id 用户可以订阅校园 现在我想要两样东西 1.让所有用户订阅特定校园 2.检查特定用户(如id=1)是否订阅了特定校园(如id=2)

最“雄辩”的方式是使用关系查询:

一个简单的例子是返回任何校园的用户

// Get users with any campus relationship.
$users = User::has('campuses')->get();
然而,你需要更强大的东西

针对特定“校园”中的“用户”

// Get 'users' in a 'campus' where the 'name' column equals 'foo'.
$campus = 'foo';

$users = User::whereHas('campuses', function($query) use ($campus) {
    $query->where('name', $campus);
})->get();
对于特定“校园”中的特定“用户”,代码几乎相同

// Find the 'user' with a primary key of '1' in the 'campus' where
// the 'name' column equals 'foo'.
$primaryKey = 1;
$campus = 'foo';

$users = User::whereHas('campuses', function($query) use ($campus) {
    $query->where('name', $campus);
})->find($primaryKey);
如您所见,上一个示例替换了上一个示例中的
get()
方法。 如果要使用主键进行查询,可以在
whereHas()
方法中对回调执行相同的操作。这将导致以下结果

...
$query->find($campus);
...
上述所有方法都可以在
illumb\Database\elount\Builder
类中找到

我建议您查看一些源文件,以便更好地了解如何处理请求

...
$query->find($campus);
...