這一章節會稍微短一點,主要是介紹基礎的 Model 定義,但是在一般開發下是不太會針對 Model 做太多的設置,所以你會發現這一章節真的比較沒有什麼。
首先 Model 定義的方式很簡單,但是在那之前我們必須先建立 Model 資料夾,因為預設 ThinkPHP 並沒有提供 Model 資料夾,所以我們在 about
底下建立一個 model
資料夾,並新增一個檔案叫做 about.php ↓
那 Model 定義的方式只需要這樣子即可:
<?php
namespace app\about\model;
use think\Model;
class about extends Model
{
}
裡面最需要注意的地方只有這一段程式碼 use think\Model;
,這一段是在告知 ThinkPHP 我們要使用 Model 的核心庫,如果你缺少這一行就會無法正常運行唷。
好,恭喜你,你已經完成基礎的 Model 定義了(?!),但是僅僅定義 Model 是不夠的,畢竟 Model 會操控 DB,所以下來我們要來設置資料庫。
當我們準備好上面動作後,就要來做一下連接資料庫動作,否則 Model 是無法做任何操作 DB 的。
資料庫設置的檔案位於 project/config
底下的 database.php,只需要將相關欄位填入即可 ↓
基本上只需要填入 hostname
、username
、password
就可以了,那麼依照我的 MySQL 設置,就會這樣填入 ↓
只是有一個地方我有另外填入,也就是 prefix
,因為我建立的資料庫是有前綴的,所以才會填入 think_
。
接下來我們要先來新增一張資料表(後面章節會使用到),SQL 指令我就直接給各位囉~
CREATE TABLE think_user (
id int(10) NOT NULL auto_increment,
name varchar(5) NOT NULL default '',
weight int(5) NOT NULL default 0,
height float(5) NOT NULL default 0,
PRIMARY KEY (id)
) AUTO_INCREMENT=1;
你可以發現我資料表也會加上前綴,而這等一下會幫助我們後面的操作,最主要是因為我在前面設置 database.php 時,有填入 prefix => 'think_'
,那麼資料庫在建立上就都必須加上前綴,否則 ThinkPHP 找不到唷。
接下來由於我在 database.php 有設置資料庫 & 表的前綴 think_
,所以我們接下來再指定資料表的時候必須這樣寫 ↓
<?php
namespace app\about\model;
use think\Model;
class about extends Model
{
protected $table = 'think_user';
}
當然你也可以簡寫,ThinkPHP 會幫你帶上 think_
,只是我個人習慣寫完整一點:
protected $table = 'think_user';
另外如果你希望這個 Model 會連接不同的資料庫也是可以,只需要這樣寫入設定覆蓋原本的就可以了:
<?php
namespace app\about\model;
use think\Model;
class about extends Model
{
protected $connection = [
// 資料庫類型
'type' => 'mysql',
// 資料庫 IP
'hostname' => '127.0.0.1',
// 資料庫名稱
'database' => 'test',
// 使用者名稱
'username' => 'root',
// 密碼
'password' => '',
// 資料庫端口
'hostport' => '',
// 參數
'params' => [],
// 編碼
'charset' => 'utf8',
// 前缀
'prefix' => 'think_',
// Debug 模式
'debug' => true,
];
}
這邊這樣講下來,其實非常的模糊的,所以後面章節會慢慢在搭配 Controller+Model 的操作來加深觀念。
本文同步發表於:https://hsiangfeng.github.io/php/20190912/1469012740/