有两个表
表 user
id | name |
---|---|
1 | tom |
2 | jerry |
表 friend
id | user_id | support_id |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
表 support
id | name | can_fly |
---|---|---|
1 | bird | 1 |
2 | dog | 0 |
三个 Model
class User extends Model{
public function friends()
{
return $this->hasMany(Friend::class);
}
}
class Friend extends Model{
public function user()
{
return $this->belongsTo(User::class);
}
public function support()
{
return $this->belongsTo(Support::class);
}
}
class Support extends Model{
public function scopeFly($query)
{
return $query->where('can_fly', 1);
}
}
我想实现如下 sql,意义为 获取 tom 所有会飞的朋友 关系
select * from friend
inner join support on friend.support_id = support.id
inner join user on friend.user_id = user.id
where user.id = 1
and where support.can_fly = 1
我这样写,但后边的不会写了,求解。
$user = User::find(1);
$user->friends()-> {how to inner join support} -> {how to use support's scopeFly}
你可以在 Friend 模型中定义一个新的本地作用域,结合 with 和 whereHas 方法实现:
class Friend extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function support()
{
return $this->belongsTo(Support::class);
}
public function scopeWithFlySupport($query)
{
return $query->whereHas('support', function ($query) {
$query->fly();
});
}
}
现在,你可以在查询中用 withFlySupport 作用域:
$user = User::find(1);
$friendsWithFlySupport = $user->friends()->withFlySupport()->get();
如何使用
将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>") 首先,文档被转换成Unicode,并且HTML的实例
基础运用 Redis::set('user:profile:' . $id, "Swoft"); $userDesc = Redis::get('user:profile:' . $id); 你可以通过 Redis:: 调用任何 Redis 命令。Swoft 使用魔术方法将命令传递给 Redis 服务端,因此只需传递 Redis 命令所需的参数即可。示例: Redis::set('name',
引入 WeUI.css文件 利用 vue init mpvue/mpvue-quickstart my-project 初始化一个 mpvue 项目,然后在 /src/main.js 中引入 weui.css 由于是在小程序中使用,于是就直接使用了 weiui-wxss 中的样式文件,官方提供的是 weui.wxss,因此手动转成了 weui.css,然后引入即可。 这里提供 weui.css 一
将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>") 首先,文档被转换成Unicode,并且HTML的实例
目录 简介 定义资源 主流框架的默认适配 抛出异常的方式定义资源 返回布尔值方式定义资源 注解方式定义资源 异步调用支持 规则的种类 流量控制规则 熔断降级规则 系统保护规则 访问控制规则 热点规则 查询修改规则 定制规则推送方式 其它 API 业务异常统计 Tracer 上下文工具类 ContextUtil 指标统计配置 规则生效的效果 判断限流降级异常 Dashboard 实时监控 简介 Se
英文原文:http://www.phpconcept.net/pclzip/user-guide/18 PKZIP 压缩包的内部表示方式 每个 PKZIP 压缩包都由一个 PclZip 对象表示。 当使用 PclZip 对象创建一个 PclZip 压缩包时,需绑定压缩包的名字。 此时,PclZip 不会检查压缩包,也不可读,甚至压缩包还不存在。 require_once('pclzip.lib.p
使用步骤 使用JustAuth总共分三步(这三步也适合于JustAuth支持的任何一个平台): 申请注册第三方平台的开发者账号 创建第三方平台的应用,获取配置信息(accessKey, secretKey, redirectUri) 使用该工具实现授权登陆 使用方式 引入依赖 <dependency> <groupId>me.zhyd.oauth</groupId> <artifa