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

Laravel 5雄辩的“with”方法:联接多个表并在联接表中筛选列

禹正阳
2023-03-14

我将用户和用户配置文件存储在两个单独的表中,users表有username和email列,UserProfile表有name和employee_no列。

public function userProfile()
{
    return $this->hasOne('App\Models\Utility\UserProfile', 'user_id', 'id');
}
public function users()
{
    return $this->belongsTo('App\Models\Utility\User', 'user_id', 'id');
}
public function getUserProfile(){
    $users = User::with('UserProfile')
            ->where('username', 'LIKE', '%'.Input::get('q').'%')
            ->orWhere('email', 'LIKE', '%'.Input::get('q').'%')
            ->paginate(5);


    return view('user_profile',compact('users'));
}

共有1个答案

姚伟
2023-03-14
public function getUserProfile(){
$users = User::join('UserProfile', 'users.id', '=', 'UserProfile.user_id')
        ->where('username', 'LIKE', '%'.Input::get('q').'%')
        ->orWhere('email', 'LIKE', '%'.Input::get('q').'%')
        ->orWhere('UserProfile.employee_id', 'LIKE', '%'.Input::get('q').'%')
        ->orWhere('UserProfile.name', 'LIKE', '%'.Input::get('q').'%')
        ->paginate(5);


return view('user_profile',compact('users'));

}

在Larvel Query Builder中使用join方法解决了这个问题

 类似资料:
  • 问题内容: 我如何将下面的MySQL查询写入Rails ActiveRecord 我知道如何在两个表上编写联接;但是,我对如何在3个表上使用联接不是很有信心。 问题答案: 要重写您在问题中遇到的SQL查询,我认为它应该类似于以下内容(尽管我很难完全可视化您的模型关系,所以这有点猜测): …这样该方法可以同时处理两个联接以及子句,最后是调用。 作为更多参考: 如果要将多个关联加入同一模型,则可以简单

  • 我在文件里找不到具体的东西(https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-方法。查询创建)和一些博客中没有令人满意的答案。所以这里是我的问题。 我有如下表格实体: 以及用户表实体: 现在,我想在我的存储库中有这样一个查询: 意味着我想通过我的工作站实体找到所有年龄在一定年龄以下的用户。 如

  • 问题内容: 我正在尝试找出SQLAlchemy中正确的联接查询设置,但似乎无法解决。 我有以下表格设置(简化后,我省略了非必要字段): 因此,关系如下: 1:n Group Member 1:n Member Item 1:n Version Item 我想通过从数据库中选择具有特定版本的所有项目行来构建查询。然后,我想按组然后按成员订购。使用Flask / WTForm的输出应如下所示: 我想出

  • 问题内容: 我有两个表: 我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗? (注意:我还需要查询表1中的值,因此我不能只查询表2。) 问题答案: 塔达阿!没有子查询。

  • 我是(My)SQL的新手,需要一些帮助:在数据库中,我有3个表,一个例子: 购买: 制造者: 型号: 在表purchases中,model是一个外键,它链接到model.id。在模型中,“制造商”是一个外键,它与“制造商id”相链接。 我的目标是一个如下图所示的表格: 我知道如何在表购买中加入以获取型号的名称。不幸的是,我不知道如何获取制造商? 我的SQL-查询:

  • 问题内容: 我有三个表:R,S和P。 表R通过外键与S连接;有 应该 是S中至少一个的记录,所以我可以加入: 如果S中没有记录,那么我没有行,那很好。 然后表S与P联接,其中记录为P可能存在,也可能不存在,并与S联接。 所以我做 如果我想将第二个JOIN绑定到S而不是R,例如我可以使用括号,该怎么办: 还是这已经是R,S和P之间笛卡尔积的自然行为? 问题答案: 各种外部联接和普通联接都在相同的优先