lavarel中如何建立資料庫?

怎麼知道lavarel對資料庫的設定?

在.env之中找到

DB_CONNECTION=mysql (使用mysql 或是 sqlite)

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=js_trans

DB_USERNAME=root

DB_PASSWORD=

以上根據資電腦資料庫MySql或是Sqlite去設定IP

laravel怎麼和資料庫連接?

使用指令 php artisan migrate
可以將laravel中設定好內容搬遷至指定的資料庫中

可以先嘗試丟入試試看,如果之後有在lavarel增加新的table,則要使用指令

php artisan migrate:flesh,就可以將資料庫更新,

But table 裡的 column 也會被重製


怎麼建立新的table?

php artisan make:model -m 名稱

如果只需要用到model 或是migrate可以使用下方指令

php serve make:model abc
創建一個新的model abc
make: migration create_posts_table
創建一個新的migrate create_posts_table

也可以用php artisan help make:model
去查詢其他功能

範例:

C:\Users\Desktop\js_trans>php artisan make:model -m bname

   INFO  Model [C:\Users\Desktop\js_trans\app/Models/bname.php] created successfully.

   INFO  Created migration [2022_10_04_082922_create_bnames_table].

之後就可以在app\models和app\migration找到剛剛新建的bname檔案

怎麼在migration設定table中的column?

一開始系統會預設給予下面兩項,分別會給ID欄位、created_at欄位、updated_at欄位

$table->id();
$table->timestamps();

如果想要加上新增欄位,有以下欄位屬性可以參考

$table->string('name'); //字串
$table->morphs('tokenable');
$table->text('abilities')->nullable();
$table->longText('payload')->unique();
$table->rememberToken();

怎麼新增資料?要先編輯table的資料權?

在models中編輯,為了避免資料庫中private的資料被竄改,所以有兩種寫法分別是 $fillable 和$hidden,可以選一個寫,不一定要兩個都寫。

    protected $fillable = [
        'name',
        'email',
        'password',
    ];
   protected $hidden = [
        'password',
        'remember_token',
    ];

編輯好權限之後,可以著手新增資料,首先在你的編譯器輸入:使用指令php artisan tinker 來操作

php artisan tinker

在tinker裡,輸入以下幾種資料庫指令,分別代表不同的功能

bname::find(2)->name
bname::whereId(12)->first();
//找到指定區塊
bname::all()
bname::get()
//印出全部
bname::create(['name'=>'123'])
//建立資料
->delete()
//刪除資料

範例:

>>> bname::create(['name'=>'123'])
=> App\Models\bname {#4664
     name: "123",
     updated_at: "2022-10-05 03:28:40",
     created_at: "2022-10-05 03:28:40",
     id: 25,
   }

>>> bname::find(25)
=> App\Models\bname {#3671
     id: 25,
     name: "123",
     created_at: "2022-10-05 03:28:40",
     updated_at: "2022-10-05 03:28:40",
   }
>>> bname::find(25)->delete()
=> true

>>> bname::find(25)
=> null

參考

https://laravel.tw/docs/5.0/database#configuration

https://ithelp.ithome.com.tw/articles/10193488