เรียนรู้การพัฒนาเว็บด้วย Yii2–3

ว่าด้วยเรื่องของความสัมพันธ์ในตาราง Offices และ Employees ซึ่งเป็นแบบ one to many

  1. เข้า url http://localhost/classic/web/index.php?r=gii แล้ว generate Employees Class
  2. ดูความสัมพันธุ์ใน Class Offices

3.แสดงรายชื่อพนักงานของบริษัทที่มี officeCode=2

public function actionShowemp(){
$model=Offices::findOne(2);
if($model){
echo 'Office: '.$model->officeCode.':'.$model->city;
echo "<br>";
echo "<br>";
echo 'Have employees';
echo "<br>";
echo "<br>";
foreach ($model->employees as $value){
echo $value->firstName.':'.$value->lastName;
echo "<br>";
}
}
else
echo 'no data'
;
}

ลองใช้คำสั่ง sql เพื่อเปลี่ยบเทียบผลลัพธุ์จากข้างบน

select o.officeCode,e.firstName,e.lastName
from offices o
inner join employees e
on o.officeCode=e.officeCode
where o.officeCode=2

4.ดูความสัมพันธุ์ใน Class Employees

ให้แสดงชื่อพนักงานทุกคนในตาราง Employees พร้อมระบุบริษัทที่สังกัด

public function actionShowemp2(){
$model=Employees::find()->orderBy('firstName')->all();
foreach ($model as $item) {
echo $item->firstName.'-'.$item->lastName.'==========OFFICE::'.$item->office->city;
echo "<br>";
}
}

ลองใช้คำสั่ง sql เพื่อเปลี่ยบเทียบผลลัพธุ์จากข้างบน

SELECT e.firstName,e.lastName,o.city
FROM employees e
INNER JOIN offices o
on e.officeCode=o.officeCode
order by e.firstName

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.