用户表
<script>
$(document).ready(function(){
$.getJSON("getlist.php", function(return_data){
return_data.forEach(function(e,i){
$('#catn').append('<option value= "'+e.catname+'">'+e.catname+'</option>');
});
});
});
$(document).ready(function(){
$.getJSON("list2.php",{'catname':catname},function(return_data){
return_data.forEach(function(h,i){
$('#scatn').append('<option value= "'+h.subcatname+'">'+h.subcatname+'</option>');
});
});
});
发布表
<?php
$catname=$_GET['catname'];
$conn =mysqli_connect("localhost", "root", "", "project");
$sql = "SELECT * FROM catd where catname='$catname'";
$result = mysqli_query($conn, $sql);
$scat_arr = array();
while( $row = mysqli_fetch_array($result) )
{
$catid = $row['cid'];
$catname = $row['catname'];
$scat_arr[] = array("cid" => $catid, "catname" => $catname);
}
echo json_encode($scat_arr);
?>
类别表
|---------------------|------------------|
| id | email |
|---------------------|------------------|
| 3 | 18 |
|---------------------|------------------|
类别发布
|---------------------|------------------|
| id | Title |
|---------------------|------------------|
| 12 | My Post |
|---------------------|------------------|
用户类别
|---------------------|------------------|
| id | Title |
|---------------------|------------------|
| 18 | My Category |
|---------------------|------------------|
在此表结构中,我想通过一个查询根据其喜欢的类别获取具有任何给定用户ID的所有帖子。
我已经定义了所有模型的关系
类别:
|---------------------|------------------|
| post_id | category_id |
|---------------------|------------------|
| 12 | 18 |
|---------------------|------------------|
帖子:
|---------------------|------------------|
| user_id | category_id |
|---------------------|------------------|
| 3 | 18 |
|---------------------|------------------|
用户:
public function posts(){
$this->belongsToMany(Post::class,'category-post','category_id','post_id')
}
答案 0 :(得分:3)
可以使用您的关系模型尝试
$data = User::with("favCategories.categories.posts")->find($user_id);
//“ favCategories”首先获得所有喜欢的类别
//“类别”获取所有类别
//“帖子”明智地获取所有具有这些类别的帖子
答案 1 :(得分:-1)
这是一个雄辩的查询:
<?php
dd($posts = User::find(3) //user id 3
->categories()->where('id', 18) //favorite category id 18
->posts);