iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
1
自我挑戰組

Laravel 學習歷程系列 第 14

Day14【Laravel 學習歷程】- 建立Model模型(下)

接續昨天電腦悲劇,繼續把model更完整點/images/emoticon/emoticon02.gif

先貼一下昨天那樣建立model,
model會長怎樣
https://ithelp.ithome.com.tw/upload/images/20181029/20111531mXgFIlijKp.jpg


Laravel新增的資料表裡面有什麼

主鍵

Laravel新增的資料表會主動假設每個資料表有一個主鍵欄位叫做 id
我們可以自己再定義一個 primaryKey 屬性來覆寫掉它

時間戳記

除了id之外,
像我都會自己建立build_date、edit_date......啦巴拉巴拉的,
我不知道別人會不會,
但是我發現居然laravel也會自動幫忙新增 created_atupdated_at 欄位
但是相對的,
如果你的習慣跟我不一樣,
也有可能你的那張表不需要這些欄位的話
那就在我們的model裡面設定 timestamps 屬性,
設定為 false 「public $timestamps = false;」如下
https://ithelp.ithome.com.tw/upload/images/20181029/20111531INF4cSqwIq.jpg

這樣一來Laravel就不會自做主張了

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * 指定是否模型應該被戳記時間。
     *
     * @var bool
     */
    public $timestamps = false;
}

阿如果是需要的,但是要改時間格式呢?
有一些業主都很斤斤計較,有時候就會遇到多給他時分秒他不要的狀況哈哈
那就要先在我們的model設定一下 dateFormat 屬性
這個屬性決定日期如何在資料庫中儲存,以及當模型被序列化成陣列或是 JSON 時的格式:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * 模型的日期欄位的儲存格式。
     *
     * @var string
     */
    protected $dateFormat = 'U';
}

然後在新增function 設定顯示的哪個欄位要用什麼格式

例如這樣:
$this->attributes['欄位名稱']->format('m/d/Y');

還有好多sql查詢語法,改天用到了再來提好了


上一篇
Day13 【Laravel 學習歷程】- 建立Model模型(上)
下一篇
Day15 【Laravel 學習歷程】- 建立Laravel Authentication認證登入
系列文
Laravel 學習歷程17

尚未有邦友留言

立即登入留言