營銷微網(wǎng)站建設(shè)公司seo推廣方案怎么做
學(xué)習(xí)要點(diǎn):
1.默認(rèn)設(shè)置
2.模型定義
本節(jié)課我們來開始學(xué)習(xí)數(shù)據(jù)庫的模型部分的定義和默認(rèn)值的設(shè)置。
一.默認(rèn)設(shè)置
1. 框架可以使用 Eloquent ORM 進(jìn)行數(shù)據(jù)庫交互,也就是關(guān)系對象模型;
2. 在數(shù)據(jù)庫入門階段,我們已經(jīng)創(chuàng)建了一個(gè) User.php 模型,如下:
php artisan make:model Http/Models/User //默認(rèn)在 app 目錄
3. 而調(diào)用的時(shí)候,我們也知道表名要遵循它默認(rèn)規(guī)則,修改為復(fù)數(shù),或特定;
class User extends Model
{
protected $table = 'user';
}
4. 系統(tǒng)假定你的主鍵為 id,如果你要修改默認(rèn)主鍵,可以特定;
protected $primaryKey = 'xid';
5. 系統(tǒng)假定你的主鍵 id 為自增性,意味著是主鍵會自動(dòng)轉(zhuǎn)換 int 類型;
6. 如果你希望不是非自增,非數(shù)值類型主鍵,可以設(shè)置取消;
public $incrementing = false;
7. 如果你主鍵不是一個(gè)整數(shù),那么需要$keyType 設(shè)置為 string;
protected $keyType = 'string';
8. 系統(tǒng)默認(rèn)情況下會接管 created_at 和 updated_at 兩個(gè)時(shí)間戳列;
9. 如果不想讓系統(tǒng)干涉這兩個(gè)列,可以設(shè)置 false 取消;
public $timestamps = false;
10. 如果你想自定義時(shí)間戳的格式,可以設(shè)置;
protected $dateFormat = 'U';
11. 可以更改創(chuàng)建時(shí)間 created_at 和更新時(shí)間 updated_at 字段名;
const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time';
12. 默認(rèn)讀取 database.php 配置的數(shù)據(jù)庫連接,也可以在模型端局部更改;
protected $connection = 'mysql';
二.模型定義
1. 之前在查詢構(gòu)造器部分,把常用的數(shù)據(jù)庫操作基本講完,模型大體相同;
2. 比如,我們要查詢所有數(shù)據(jù),直接使用模型::all()即可;
//查詢所有記錄
$users = User::get(); //或 all()
return [$users];
3. 也可以像查詢構(gòu)造器一樣,添加各種各樣的條件,寫法一樣;
//查詢性別為男,價(jià)格大于 90,限制顯示 2 條
$users = User::where([
['gender', '=', '男'],
['price', '>', 95]
])->limit(2)->get();
4. 雖然安裝了插件,但模型還是沒有代碼提示,可以通過安裝插件解決;
composer require barryvdh/laravel-ide-helper
php artisan ide-helper:generate – 為 Facades 生成注釋
php artisan ide-helper:models – 為數(shù)據(jù)模型生成注釋
php artisan ide-helper:meta – 生成 PhpStorm Meta file
5. 其它查詢方法基本和查詢構(gòu)造器一樣,如果有不一樣,參考錯(cuò)誤提示;
6. 這里列出官網(wǎng)給出示例的方法,對照實(shí)驗(yàn)(結(jié)合詳細(xì)文檔,重復(fù)較多);
(1) .find(1) //通過主鍵查找
(2) .first() //查找第一個(gè)
(3) .firstWhere() //找到查詢中的首個(gè)
(4) .find([1,2,3]) //通過數(shù)組查找
(5) .firstOr() //查找首個(gè)返回,支持閉包
(6) .firstOrFail() //找不到時(shí)返回異常
(7) .count()、max()等集合 //集合操作
PS:還有很多在查詢構(gòu)造器中的方法,比如排序、分組子查詢等等都可以使用(并未一一驗(yàn)證)。