当前位置: 首页 > 知识库问答 >
问题:

如何获得用户职业在laravel中是特例的帖子

董俊晖
2023-03-14

这是一个社交媒体软件。

  1. 用户表有id,名称,电子邮件,密码字段。
  2. 发布表有id,user_id,标题和其他字段。
  3. 职业表有id,标题字段
  4. users_professions表有id,user_id字段
  5. 每个用户都有很多帖子。
  6. 用户有很多帖子,发布个人物品给用户。
  7. 每个用户有一个users_professions。
  8. 用户hasOneusers_professions。

问题:

我想获得用户职业与所选ID相等的“帖子”。

我目前的代码:

$posts = Post::join('users', 'users.id', '=', 'posts.user_id')
    ->join('users_professions', 'users.id', '=', 'users_professions.user_id')
    ->where('users_professions.profession_id', $request->category_id)
    ->where('files', "<>", "[]")
    ->where('is_product', 0)
    ->select('posts.id', 'posts.title', 'posts.user_id', 'posts.is_product', 'posts.media_display_mode', 'posts.files','posts.created_at')
    ->orderBy('posts.id', 'desc')
    ->paginate(50);

这个代码正确吗?

共有1个答案

逄边浩
2023-03-14

我看不出你的代码有什么问题。如果您所关心的是根据与它们的关系相关的条件检索Posts,那么您可以使用其中有方法。

雄辩的关系-查询关系的存在

假设在模型中定义了以下关系:

  • 发布属性到User(asuser()
  • 用户属性为许多职业(作为职业()
// Query only the posts that belong to an user who has a profession with id = $profession_id
Post::whereHas('user.professions', function ($professions) use ($profession_id) {
    $professions->where('professions.id', $profession_id);
})
...
->get()

或者假设在模型中定义了以下关系:

  • Post属于User(作为User()
// Query only the posts that belong to an user who has a profession_user with profession_id = $profession_id
Post::whereHas('user.professions_user', function ($professions_user) use ($profession_id) {
    $professions_user->where('profession_user.professions_id', $profession_id);
})
...
->get()

 类似资料:
  • 我找了很多,但没有找到任何答案,所以我希望你能帮助我! 我有三个表:post、users和post\U users。Post_users包含两列:user_id和Post_id。 我需要得到一个有口才的用户的所有帖子。有什么想法吗? 非常感谢你! (如果这个问题已经存在,我很抱歉,但我还没有找到它)

  • 我正在建立一个社交网络,在那里,用户将拥有一个类似推特的流,记录他们关注的人的所有帖子。 什么是最好的方式来查询这个与Laravel雄辩? 我有三张桌子

  • 我需要加载实体以及表示特定用户(当前登录用户)投票的实体。这是两个实体: 所有关联都是单向的。我不使用OneToMany的原因是集合太大,需要在访问之前进行适当的分页:不向我的实体中添加与任何实体的关联意味着防止任何人天真地执行类似于for(PostVote pv:post.getPostVoices())的操作。 对于我现在面临的问题,我有各种各样的解决方案:在我看来,没有一个是完全令人信服的。

  • 我有一个api负责下载excel工作表,我的请求对象包含一些值,基于请求对象,我要获取值请帮助我解决此问题。。? dd($请求) Controller.php

  • 我是使用Kotlin开发Firebase android的初学者,我的问题是我想使用Kotlin检测特定的。我如何达到预期的结果。 我看到过使用Java的例子,但我不知道如何使用Kotlin实现它。任何帮助都是非常感谢的。下面是我在代码中写的内容: 如果电话号码已经存在,我希望用一个toast向用户显示。

  • 问题内容: 我尝试创建一个计算器,但由于不知道如何获得用户输入而无法使它工作。 如何获得Java中的用户输入? 问题答案: 你可以根据要求使用以下任何选项。 Scanner class BufferedReader and InputStreamReader classes DataInputStream class 该类中的方法已被弃用。若要获取值,应将先前的解决方案与一起使用 Console