文章出處
文章列表
HAS_MANY 關聯表示當前模型擁有多個子對象
user數據表中的用戶可以發布多條留言,創建了think_content數據表,
其中uid用來關聯user中的id
在 WeiBo/Home/Controller/UserController.class.php 中代碼為:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 use Home\Model\UserModel; 5 6 class UserController extends Controller { 7 public function index() { 8 $user = D('User'); 9 $arr = $user->relation(true)->select(); 10 print_r($arr); 11 } 12 }
在 WeiBo/Home/User/Model/UserModel.class.php 中的代碼如下:
1 <?php 2 namespace Home\Model; 3 use Think\Model; 4 use Think\Model\RelationModel; 5 6 class UserModel extends RelationModel { 7 protected $_link = array( 8 'Content'=>array( 9 'mapping_type'=>self::HAS_MANY, 10 'mapping_name'=>'contents', 11 'class_name'=>'content', 12 'foreign_key' =>'uid', 13 'mapping_fields'=>'content', 14 'mapping_limit'=>'0,2', 15 'mapping_order'=>'id DESC', 16 ), 17 ); 18 }
得到的數據為:
后面還有數據未全部顯示。
用戶表和留言表:BELONGS_TO(多對一)表示 N 條留言從屬于某個用戶。
新建數據表think_role,用來表示user表中用戶的權限:
新建think_group用來連接user和role表,uid用來指代user中的id對應的用戶,gid用來指代role表中的權限:
在 WeiBo/Home/Controller/UserController.class.php 中代碼為:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 use Home\Model\UserModel; 5 6 class UserController extends Controller { 7 public function index() { 8 $user = D('User'); 9 $arr = $user->relation(true)->select(); 10 print_r($arr); 11 } 12 }
在 WeiBo/Home/User/Model/UserModel.class.php 中代碼為:
1 <?php 2 namespace Home\Model; 3 use Think\Model; 4 use Think\Model\RelationModel; 5 6 class UserModel extends RelationModel { 7 protected $_link = array( 8 'Role'=>array( 9 'mapping_type'=>self::MANY_TO_MANY, 10 'relation_table'=>'think_group', 11 'foreign_key' =>'uid', 12 'relation_foreign_key'=>'gid', 13 ), 14 ); 15 }
這時得到的數據為:
即兩個數據表關聯起來了,后面還有三組數據沒列出來。
關聯也可以向其它數據表的數據進行增刪改查,我們使用user和card兩個表
user表:
card表
WeiBo/Home/User/Model/UserModel.class.php 中代碼進行關聯:
1 namespace Home\Model; 2 use Think\Model; 3 use Think\Model\RelationModel; 4 5 class UserModel extends RelationModel { 6 protected $_link = array( 7 'Card'=>array( 8 'mapping_type'=>self::HAS_ONE, 9 'foreign_key' =>'uid', 10 'mapping_fields'=>'code', 11 ), 12 ); 13 }
WeiBo/Home/Controller/UserController.class.php 中的代碼進行增刪改查操作:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 use Home\Model\UserModel; 5 6 class UserController extends Controller { 7 public function index() { 8 $user = D('User'); 9 $arr = $user->relation(true)->select(); 10 print_r($arr); 11 } 12 public function add() { 13 $user=D('User'); 14 $data['user']='測試用戶'; 15 $data['email']='test@163.com'; 16 $data['Card']=array( 17 'code'=>'3209xx', 18 ); 19 $user->relation(true)->add($data); 20 } 21 public function delete() { 22 $user=D('User'); 23 $user->relation(true)->delete(16); 24 } 25 public function update() { 26 $user=D('User'); 27 $data['user']='測試用戶54'; 28 $data['email']='test@163.com'; 29 $data['Card']=array( 30 'code'=>'3909zz', 31 ); 32 $user->relation(true)->where(array('id'=>20))->save($data); 33 } 34 }
文章列表
全站熱搜