Skip to main content

关联查询-远程关联

info

hasManyThrough(中间模型类名,关联模型类名,当前模型外键,中间模型外键,关联模型外键)

一、模型中定义规则

示例:School.php
<?php
namespace app\models;

use core\base\Model;

class School extends Model
{
protected $tables = 'school';

public function __construct()
{
parent::__construct($this->tables);
}

public function hasManyClass()
{
return $this->hasManyThrough(Classroom::class, Student::class, 'id', 'school_id', 'cid');
}
}
示例:Classroom.php
<?php

namespace app\models;

use core\base\Model;

class Classroom extends Model
{
protected $tables = 'classroom';

public function __construct()
{
parent::__construct($this->tables);
}
}
示例:Student.php
<?php
namespace app\models;

use core\base\Model;

class Student extends Model
{
protected $tables = 'student';

public function __construct()
{
parent::__construct($this->tables);
}
}

二、控制器中调用

源数据:

图片alt

图片alt

图片alt

2.1 方法一

示例
$class = School::find(1);
$res = $class->hasManyClass();
pd($res);

图片alt

2.2 方法二

示例
$res = School::with('hasManyClass')
->field('school.school_name, address, cname, sname')
->select();
print_r($res);

图片alt