iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
1
自我挑戰組

Laravel 學習歷程系列 第 13

Day13 【Laravel 學習歷程】- 建立Model模型(上)

今天就直接來建立一個Eloquent 模型先吧

在每個資料庫的表中都有一個對應的「模型」可以用來跟資料表互動,取代我們可以更簡潔的下SQL語法。
LaravelEloquent ORM 不只是可以透過模型查詢資料表內的資料,
居然還可以直接新增記錄到資料表中,
這個我覺得很厲害哈哈哈

在開始之前我們要先確認有沒有設定資料庫連結在 config/database.php 檔案內,要先設定好了他才找得到資料庫可以新增~

來新增model吧哈哈
一樣又是再度打開cmd下指令就可以新增了
我的天 這實在是太神奇了
想想用ci我還要一個個打,用pdo也是得下sql語法
來看看cmd幫我新增的model長怎樣
說不定....
一樣要自己新增
根本是自己想太多想太美好哈哈哈哈
來下Artisan指令吧

php artisan make:model {資料表名稱}

php artisan make:model Role

但是如果是下上面這樣的語法的話
我們就要先自己把對應的資料表建立好
那如果要產生資料表遷移的話 語法要怎麼下呢
這個時候就要下

php artisan make:model {資料表名稱} --migration

php artisan make:model Role --migration

或者是

php artisan make:model Role --m

https://ithelp.ithome.com.tw/upload/images/20181029/20111531wYLWpsUMx0.jpg
如上,不管是「--migration」或者是「--m」都可以,
就會直接幫我們對應好該對應的資料表,
這樣一來就可以方便後續修改資料表
詳細我們之後再來嘗試一次看看就知道多厲害了

好了,以為上面這樣就準備好了嗎
我以為這樣就好了,但是事情不是這樣的
因為我們還沒有告訴 Eloquent Flight 模型應該用哪一個資料表
我們要明確地指定其他名稱,
不然類別的小寫、底線、複數形式....等,
都會被拿來當作資料表的表單名稱
因為他太聰明了
所以,
我們需要在模型上定義一個 table 屬性,
用來指定自訂的資料表,
有時候可能名稱不一樣就要指定給他正確的資料表
我們新增好的model會像這樣

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    /**
     *
     * @var string
     */
}

我們要在這告訴他要讀哪個資料表,
像我剛剛上面新增的那個Rolemodel
我通常都會用對應的名稱,這樣才不會亂掉
所以相對的資料表名稱就是role
我就下這樣的語法,告訴他指定資料表是哪個

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    /**
     *
     * @var string
     */
    protected $table = 'role';
}

我今天電腦又在崩潰了,我比他還崩潰
讓我好好完成鐵人賽怎麼了嗎⋯⋯
很困擾欸 母湯這樣對我
/images/emoticon/emoticon02.gif


上一篇
Day12 【Laravel 學習歷程】- 建立Controller控制器
下一篇
Day14【Laravel 學習歷程】- 建立Model模型(下)
系列文
Laravel 學習歷程17

尚未有邦友留言

立即登入留言