:::

6. 建立相關資料表及模型

一、建立 Eloquent 模型

  1. 一個Eloquent 模型對應一張表,model (模型)就是用來操作資料庫資料用的。

  2. migration 可視為建立SQL資料表的方法(有點類似xxx.sql的作用),可分次建立,亦可回覆上一動。

  3. 先建立 Eloquent 模型,以便將一個資料表變成一個物件來操作,並且順便產生 migration 檔案
    php artisan make:model Exam --migration
  4. 模型的第一個字請用大寫(大駝峰命名法),單複數不拘,但似乎使用單數的人居多。

  5. 若 migration 檔案已經存在了,則用下面任一語法均可

    php artisan make:model Exam 
    php artisan make:model Exam --no-migration
    
  6. 最後會產生 /專案/app/Exam.php 模型
    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Exam extends Model
    {
        //
    }
    
  7. 還有 /專案/database/migrations/日期_create_exams_table.php (如:2018_07_01_161014_create_exams_table.php)

    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateExamsTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('exams', function (Blueprint $table) {
                $table->increments('id');
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('exams');
        }
    }
    

二、編輯 Eloquent 模型

  1. 如果是自動建立的 migration,其實下面動作不需要做
  2. Eloquent 會假設類別的小寫、底線、複數形式就是資料表的名稱 ,例如類別叫做Exam,其內定資料表名稱辨識exams,所以資料表名稱若不符合此內規,則可自行定義一個 $table 屬性來告知正確的資料表名稱。
  3. Eloquent 也會假設每個資料表有一個主鍵欄位叫做 id。所以,若您的主鍵不是叫做id,那麼你也可以定義一個 $primaryKey 屬性來覆寫這個慣例。(/專案/app/Exam.php
    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Exam extends Model
    {
    //若符合慣例可以不用設定這些
        protected $table      = 'exams';
        protected $primaryKey = 'id';
    }
    

三、Model 慣例

  1. model 預設在 /專案/app 底下,若要放在/專案/app下的子目錄,記得也要修改 namespace
  2. 一個 Model 對應一個資料表
  3. 資料表名稱為英文 複數 全小寫,單字間用蛇底式命名法( snake case ),例如: first_name 、last_name、snake_case
  4. Model 名稱為單數,單字間用大駝峰命名法 (upper camel case) ,例如:FirstName、LastName、CamelCase

四、關於Eloquent 用法

  1. 方法詳見:https://laravel-china.org/docs/laravel/5.6/eloquent/1403

到GitHub觀看此單元程式異動


:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D37%26tbdsn%3D1156

計數器

今天: 1437143714371437
昨天: 1416141614161416
總計: 7340084734008473400847340084734008473400847340084