相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢(xún)功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫(xiě)文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP laravel中的多對(duì)多關(guān)系實(shí)例詳解
數(shù)據(jù)表之間是縱橫交叉、相互關(guān)聯(lián)的,laravel的一對(duì)一,一對(duì)多比較好理解,官網(wǎng)介紹滴很詳細(xì)了,在此我就不贅述啦,重點(diǎn)我記下多對(duì)多的關(guān)系
一種常見(jiàn)的關(guān)聯(lián)關(guān)系是多對(duì)多,即表A的某條記錄通過(guò)中間表C與表B的多條記錄關(guān)聯(lián),反之亦然。比如一個(gè)用戶(hù)有多種角色,反之一個(gè)角色對(duì)應(yīng)多個(gè)用戶(hù)。
為了測(cè)試該關(guān)聯(lián)關(guān)系,我們沿用官網(wǎng)的用戶(hù)角色示例:
需要三張數(shù)據(jù)表:users、roles 和 role_user,role_user 表按照關(guān)聯(lián)模型名的字母順序命名(這里role_user是中間表),并且包含 user_id 和 role_id兩個(gè)列。
多對(duì)多關(guān)聯(lián)通過(guò)編寫(xiě)返回 belongsToMany 方法返回結(jié)果的方法來(lái)定義。廢話(huà)不說(shuō)多,直接上數(shù)據(jù)結(jié)構(gòu):
1:創(chuàng)建一個(gè)角色表roles,并添加一些初始化數(shù)據(jù):
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for users -- ---------------------------- DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- ---------------------------- -- Records of users -- ---------------------------- INSERT INTO `users` VALUES ('1', 'admin', 'admin@163.com', '$2y$10$J/yXqscucanrHAGZp9G6..Tu1Md.SOljX3M8WrHsUdrgat4zeSuhC', 'ilocXtjZJwhrmIdLG1cKOYegeCwQCkuyx1pYAOLuzY2PpScQFT5Ss7lBCi7i', '2016-04-21 16:26:23', '2016-12-14 09:29:59'); INSERT INTO `users` VALUES ('2', 'baidu', '10940370@qq.com', '$2y$10$2A5zJ4pnJ5uCp1DN3NX.5uj/Ap7P6O4nP2BaA55aFra8/rti1K6I2', null, '2016-04-22 06:48:10', '2016-04-22 06:48:10'); INSERT INTO `users` VALUES ('3', 'fantasy', '1009@qq.com', '', null, '2017-06-14 10:38:57', '2017-06-15 10:39:01');
相關(guān)文章
- smarty foreach函數(shù)
- Smarty中foreach的index、iteration,@count的使用
- 去掉織夢(mèng)建站或者仿站時(shí)首頁(yè)訪(fǎng)問(wèn)地址后的index.html
- MySQL修改編碼設(shè)置及亂碼問(wèn)題
- WampServer搭建PHP+Apache+MySQL環(huán)境
- 修改WAMP的www目錄的全過(guò)程
- 歸并排序:歸并操作的一種有效排序算法
- 如何編寫(xiě)PHP擴(kuò)展
- 如何克服php的register_global被關(guān)掉
- php正則表達(dá)式匹配img中任意屬性的方法