我正在使用Laravel和它提供的雄辩的ORM,但我正在努力选择我需要的数据。我有两种型号
Company
Member
我该怎么做?
SELECT * FROM members m, companies c
WHERE (m.main_type = "2" AND m.main_id = c.id AND m.status = "1")
AND ((m.username LIKE "%keywords%") OR (c.name LIKE "%keywords%"))
它应该是这样的。你不需要子查询。
Member::join('companies', 'companies.id', '=', 'members.main_id')
->where(function($query) {
$query->where('main_type', 2)->where('status', 1);
})->where(function($query) {
$query->where('username', 'like', '%keywords%')->orWhere('name', 'like', '%keywords%');
});
考虑到公司可以有多个成员,您首先需要建立关系,如:
公司
型号:
public function members(){
return $this->hasMany(Member::class);
}
成员
型号:
public function company(){
return $this->belongsTo(Company::class,'main_id');
}
然后,您可以使用关系来获取数据:
$result = Company::with(['members' => function($q){
return $q->where('main_type', 2)->where('status', 1)->where(function($sq){
return $sq->where('username', 'like', '%keywords%')
->orWhere('name', 'like', '%keywords%');
});
}]);
根据外键名称更新关系的提示。我建议保持更直观,比如member_id
或company_id
我有一些Laravel多态模型,其中包括一个用户模型,可以有许多预订日历条目,可以有许多假日条目。我可以编写下面的SQL查询来提取所需的数据,但要与雄辩的查询版本作斗争。也许这是我的模型关系,或者我对拉拉维尔事物如何运作的理解。我有一些雄辩的查询确实有效,但是,它们非常低效,当我调查时,会使用许多选择,而不仅仅是一个。 我的SQL: 数据库表: 我想我的问题的症结在于预订日历有两个多态关系,因为它
在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da
我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?
我有一个问题,我很难用laravel雄辩的ORM编写这个问题。 如果有人能帮忙,我将不胜感激。 下面是SQL表达式:
如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与
我有一个Laravel后端和一个VueJS前端。 我试图在一个具有hasOne关系的模型上生成一个查询,但只从关系中选择特定的列,做一个sum和一个group By。 null