1. hasOne()
当前city表为主表,需要向下找关联表的字段用hasOne (主表A有一个B)
/**
* 城市表模型
*
* @author 云创源码
* @Datetime 2020-8-14
* @package App\Models\Account
*/
class City extends Model
{
protected $table = 'city';
/**
* 获取省份详细信息
*
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function province() {
return $this->hasOne(Province::class,'city_id','id');
}
}
2. hasMany()
一对多关系hasMany(主表A有很多B)
/**
* 省份表模型
*
* @author 云创源码
* @Datetime 2020-8-14
* @package App\Models\Account
*/
class Province extends Model
{
protected $table = 'province';
/**
* 获取省份详细信息
*
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function city() {
return $this->hasMany(City::class,'province_id','id');
}
}
3. belongsTo()
当前表为关联表,需要向上找关联表的字段用belongsTO(主表A属于B)
/**
* 管理员表模型
*
* @author 云创源码
* @Datetime 2020-8-14 * @package App\Models\Account */ class AdminUser extends Model { protected $table = 'admin_users'; /** * 关联账户表 * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function account() { return $this->belongsTo(AccountUser::class,'uid','id'); } }
4. belongsToMany()
belongsToMany多对多关系,多对多关系需要第三个数据库表,称为数据透视表
(privilege权限表,role角色表,role_privilege 角色权限表,一个角色拥有多个权限,一个权限可以被多个角色拥有)
/**
* 角色表模型
*
* @author 云创源码
* @Datetime 2020-8-14
* @package App\Models\Account
*/
class Role extends Model
{
protected $table = 'role';
/**
* 关联权限
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function privilege() {
return $this->belongsToMany(Privilege::class,'role_privilege','role_id','privilege_id');
}
}
原文链接:https://vuesite.cn/42855.html,转载请注明出处。