Yii框架資料連線操作相關學習02 資料關聯學習

2021-08-17 00:15:54 字數 1114 閱讀 7728

在學習了yii框架的資料關聯後,對於多表關聯一直不是太理解,查閱了一些資料後,大致明白了一些,下面就大概寫下理解的內容。

一、先建幾張測試表

student ( studetnid, name )

course ( courseid , name )

course_student ( coursestudentid, courseid , studentid )

student 和 course 為兩張基表,即學生表與課表,乙個學生可以選多個課程,一門課程也可以被多個學生選擇,兩者是多對多關係,所以需要一張連線表: course_student表,為了區分id號, 我將基表的id都設為大寫id,連線表course_student內的學生id和課程id都設( i 大寫,d 小寫 )。

二、在model中寫連線關係(以student為例)

1.寫法一(一條語句搞定)

public function getcourses()

說明:因為是要獲取課程course,所以將course作為從表,第乙個courseid是course表中的,第二個courseid就是course_student中的,進行乙個對應。viatable()中就填入連線表的表名,然後再加入與student表的對應關係,第乙個studentid是course_student中的,第二個是student中的。

在studentcontroller中可以進行測試一下,看是否有用

public function actiontest()

2.寫法二(分兩步)

public function getcoursestudents()

說明:這裡是先建立student與course_student 表的連線關係。

public function getcourse()

說明:在上乙個基礎上繼而建立與course表的連線關係,via()中填入的是連線關係(就是上面建立的方法:getcoursestudent())

總結:主要就是通過viatable()和via()來進行多表連線,不過要注意兩者區別,viatable()中跟的是連線表的表名,via()中跟的是自定義的連線關係(就是自己寫的方法)。

可能會搞混的地方就是對應id的填寫順序,我這裡對每張表的id進行了區分,讀者注意看就行。

YII相關學習資料整合

yii2的框架,因為國內關於yii2框架的具體中文資料還是比較少,下面整理一些比較好的中文資料。1 yii2的底層和架構方面 a yii2的目前的官方中文社群文件,翻譯還算是比較明白,最好從這裡入手 b yii2的關於底層方面的解說,說的比較通俗易解 c 牛人從底層分析說解yii2,設計的整個設計都...

yii框架學習(一)yii框架介紹

yii幾乎擁有了當今web2.0應用發展的全部特性。下面是這些特性的乙個簡短的清單。yii是乙個基於元件 用於開發大型web應用的高效能php框架。在web開發中yii可以最大限度的實現 重用,極大的提高開發的速度。名字yii 讀音是yee or ji 應該就是 易 的讀音 代表的是容易 easy ...

yii框架學習(六)yii框架相應處理

yii框架使用response類來修改statuscode,如下 res statuscode 404 複製 使用header類下的add方法既可以,如下是新增禁止瀏覽器快取配置資訊。res headers add pragma no cache 複製 使用set方法來修改 res headers ...