1. 程式人生 > >TP中的模型關聯的多對多關系

TP中的模型關聯的多對多關系

tp5 php model

TP5中完全推翻了3.2的做法,不再使用原來的查詢語句,比如select,join之類的條件查詢。而是使用模型關聯,一對多和多對多的關系進行關聯。方便用戶調用數據,減少代碼的編寫量。

下面直接開始上代碼:

role.php(model層)

class Role extends Model{

public function Nodes()

{

return $this->belongsToMany(‘Node‘,‘RoleAuthorization‘,‘node_id‘,‘role_id‘);

}

}

user.php(model層)

class User extends Model{

public function Roles(){

return $this->belongsToMany(‘Role‘,‘RoleUser‘,‘pms_role_id‘,‘pms_user_id‘);

}

}

另外幾張表只需要寫一個模型就OK,不用寫任何東西,它會自動調用。(node,roleauthorization,roleuser)

在控制器調用model,直接實例化,調用你寫的方法

$user_model = Loader::model(‘User‘);

$user_result = $user_model->get(1);

echo $user_result.‘<br/>‘;


$data = $user_result->Roles;

foreach ($data as $key => $value) {

echo $value[‘id‘].‘<br/>‘;

echo $value[‘name‘].‘<br/>‘;

// $aa = $data->Nodes;

// dump($value->Nodes);

foreach ($value->Nodes as $pk=>$pv){

echo $pv->node."<br/>";

}

}

首先,字段pms_role_id,pms_user_id字段在中間表roleuser裏,註意字段的順序,根據你關聯表的順序來進行寫的,順序錯誤數據就會不對。node_id,role_id字段在roleauthorization表裏。

本文出自 “PHP,TP” 博客,轉載請與作者聯系!

TP中的模型關聯的多對多關系