1. 程式人生 > >ThinkPHP5學習(12)模型和關聯

ThinkPHP5學習(12)模型和關聯

在application/index下建model目錄。
以Test為例,自定義表名,這種比較少。

現在以User為例。
你只要在model下建好Users.php就可以了。

如果表名為user_level,model下命名為UserLevel.php.

Model模型和表對映
User->tp_user
UserLevel->tp_user_level

表名繫結類名

名稱空間
namespace app\index\model;
use think\Model;

控制器中呼叫
use app\index\model\User;
User::get(1);

// 設定資料表(不含字首)
protected name=admin;//protectedtable = “tp_account_log”;

<?php
// application/index/model/User.php

namespace app\index\model;
use think\Model;

class User extends Model
{

}

只是看看不夠的,你必須要自己動手,至少敲一遍。

<?php

namespace app\index\controller;
use think\Controller;
use app
\index\model\User; use app\index\model\UserLevel; class index2 extends Controller { public function index(){ $a = User::get(1); print_r($a); /*$b = UserLevel::get(1); print_r($b);*/ // 插入操作 $user = new User; $user->email = '[email protected]
'
; $user->mobile = '13888000000'; // $user->aa = '12345'; $user->save(); // 插入操作 $userArr['email']='[email protected]'; $userArr['mobile']='13888000000'; if($result =$user->create($userArr)){ echo "使用者id:{$result->id}郵件:{$result->email}手機{$result->mobile}"; } // 批量新增 $user = new User; $list = [ ['email'=>'[email protected]','mobile'=>'12345'], ['email'=>'[email protected]','mobile'=>'23456'] ]; if($user->saveAll($list)){ echo '使用者批量新量成功'; } // 查詢資料 $user = User::get(1); // 返回一個物件 echo $user->email; echo '<br/>'; echo $user->mobile; // 因為實現了 \ArrayAccess介面,可以將物件象陣列一樣訪問 $user = User::get(2); echo $user['email']; echo $user['mobile']; // 根據某個條件查詢資料 getByXxx()方法 $user = User::getByMobile('12345'); $user = User::get(['mobile'=>'12345','email'=>'[email protected]']); $user = User::where(['mobile'=>'12345','email'=>'[email protected]'])->find(); echo $user['mobile']; // 如果要查詢多個數據,可以使用模型的all方法 $list = UserLevel::all(); $list = UserLevel::all(['level_id'=>4]); $list = UserLevel::where('level_id','<=',3)->select(); foreach($list as $v){ echo 'id:'.$v->level_id; echo '==等級名稱:'.$v->level_name; echo '<br/>'; } // 對於資料庫查詢出來的資料更新資料 $user = User::get(1); $user->mobile = '98876'; $user->email = '[email protected]'; if(false!==$user->save()){ return '更新使用者成功'; }else{ return $user->getError(); } // 自己定義是資料更新操作 $userArr['mobile']='12345'; $userArr['email']='[email protected]'; User::update($userArr,['user_id'=>1]); // 刪除操作 $user = User::get(2); $user->delete(); // 或者使用 User::destroy(3); } }

最後留兩個思考題:
1.
user=User::getByMobile(123456);getByXxx()XxxUsermodel2.user = new User;
user>email=123@qq.com;user->mobile =”123456”; //沒有定義的屬性為什麼能賦值。
user>aaa=1234;user->save();

相關推薦

ThinkPHP5學習(12)模型關聯

在application/index下建model目錄。 以Test為例,自定義表名,這種比較少。 現在以User為例。 你只要在model下建好Users.php就可以了。 如果表名為user_level,model下命名為UserLevel.ph

ThinkPHP5-模型關聯操作

模型和關聯操作:表對應一個模型、欄位對應一個屬性操作類的物件時就等於操作某一張表的記錄命名規則:指定類名對應指定資料表名下劃線的標明對應駝峰式命名的類如果類名和標明不相關,但是想操作那張表:那麼可以用

CSS學習—盒模型佈局模型

最近做的小專案需要搭建一個小網站,因此從 慕課網 上學習HTML+CSS的基礎知識,將接觸到的知識點用這個部落格總結出來。 一、盒模型 1.元素分類 在CSS中,html中的標籤元素大體被分為三種不同的型別:塊狀元素、內聯元素(又叫行內元素)和內聯塊狀元素

機器學習---生成模型判別模型

【摘要】判別式模型,就是隻有一個模型,你把測試用例往裡面一丟,label就出來了,如SVM。生成式模型,有多個模型(一般有多少類就有多少個),你得把測試用例分別丟到各個模型裡面,最後比較其結果,選擇

Thinkphp5學習(17)輸入驗證

TP5輸入和驗證 1.表單提交 2.表單驗證 3.錯誤提示 4.自定義驗證規則 5.控制器驗證 演示: 建立控制器 建立檢視 建立驗證器 圖1 圖2 form表單提交 Controller 1.自動收集資料input(‘post

MongoDB數據模型索引學習總結

-c 指定 explain creat 生效 上下 通信協議 必須 數據類型 MongoDB數據模型和索引學習總結 1. MongoDB數據模型: MongoDB數據存儲結構: MongoDB針對文檔(大文件採用GridFS協議)採用BSON(binary jso

ThinkPHP5學習筆記(6)請求響應

thinkphp在線視頻課程:http://www.kancloud.cn/tpshop/thinkphp5/220692Request請求對象和Response響應對象$_GET、$_POST、$_REQUEST、$_COOKIE調用請求對象$request=Request::instance()$this

Java學習筆記-12.傳遞返回對象

使用方法 自己 ots 返回 stringer integer print util solid 1.Clone()方法產生一個object,使用方法後必須產生的object賦值。 Vector v2 = (Vector)v.clone(); 2.Clone()方法在ob

機器學習模型評估選擇

val 上一個 bootstrap 自助法 break all 誤差 rec 數據集 2.1 經驗誤差與擬合 精度(accuracy)和錯誤率(error rate):精度=1-錯誤率 訓練誤差(training error)或經驗誤差(empirical error) 泛

轉載學習 多線程中的內存模型關鍵字

問題 jvm 可見性 無法 互斥 讓其 不一致 解鎖 讀取 類比與現代計算機的主存與cache,JVM中規定了 所有變量都存儲在主內存中(類比計算機的主存),然後每條線程有自己的工作內存(類比每個處理器的cache)。線程的工作內存中保存了該線程需要用到的

Asp.net MVC4高級編程學習筆記-模型學習第五課MVC表單HTML輔助方法20171101

流量 取值 工作 sin 輔助 一個點 大量 元數據 view MVC表單和HTML輔助方法 一、表單的使用。 表單中的action與method特性。Action表示表單要提交往那裏,因此這裏就有一個URL。這個URL可以是相對或絕對地址。表單默認的method屬性值是g

4月12日 python學習總結 繼承派生

__name__ sch 繼承和派生 utf-8 代碼冗余 空間 校驗 oldboy 示例 一、繼承  什麽是繼承:        繼承是一種新建類的方式,在python中支持一個子類繼承多個父類        新建類稱為子類或派生類        父類可以稱之為基類或

thinkphp5 模型關聯

php 關聯 TE 外鍵 主鍵 RR 控制 arr AR student 表 外鍵 grade_idgrade 表主鍵 id在 模型中student表關聯方法public function Grade(){ return $this->hasOne(‘Grade

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之二(作者簡介)

AR aca rtu href beijing cert school start ica Brief Introduction of the AuthorChief Architect at 2Wave Technology Inc. (a startup company

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之一(簡介)

價值 新書 The aar 生成 syn TE keras 第一章 A Gentle Introduction to Probabilistic Modeling and Density Estimation in Machine LearningAndA Detailed

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

ado vpd dea bee OS deb -o blog Oz 機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之六(第3章 之 VI/VB算法)

dac term http 51cto -s mage 18C watermark BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之七(第4章 之 梯度估算)

.com 概率 roc 生成 詳解 time 學習 style BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器學習中的概率模型和概率密度估計方法及V

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之八(第4章 之 AEVBVAE)

RM mes 9.png size mar evb DC 機器 DG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習中的概率模型概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)

ces mark TP 生成 機器 分享 png ffffff images ? ?機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)