[Day 45] 留言板後台及前台(一) - 新增资料库栏位

留言板後台及前台

新增资料库栏位

接下来终於进入到留言板的部分,
之前的心情随笔是记录自己的情况,
後面留言板则是每个人都可以来给使用者留言,
留言板目前的栏位如下
https://ithelp.ithome.com.tw/upload/images/20210425/20105694KfPEIhexNP.png
这里的user_id是指留言的使用者的id,
但是忽然发现少记录了这是属於谁的留言板,
所以我们要新增一个board_id栏位,
正好可以顺便说一下怎麽新增栏位,
忘记之前migration的可以参考第10篇跟第11篇,
首先我们要新增一个migration档案,
可以在Cmder输入以下内容:
php artisan make:migration add_board_id_to_board_table
https://ithelp.ithome.com.tw/upload/images/20210425/201056949SB1YoZdVd.png

这样子就会新增一个migration档案
https://ithelp.ithome.com.tw/upload/images/20210425/20105694qWFtvbWsjX.png

然後进去编辑档案如下

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddBoradIdToBoardTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('board', function (Blueprint $table) {
            //加入board_id栏位到user_id栏位後方
            $table->integer('board_id')
                ->after('user_id');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('board', function (Blueprint $table) {
            //移除栏位
            $table->dropColumn('board_id');
        });
    }
}

up那边表示我们要在board这个资料表,
user_id栏位之後新增一个board_id栏位,
down那边表示要移除栏位,
这些都是给migration执行指令的时候看的.

之後执行migration指令
php artisan migrate
https://ithelp.ithome.com.tw/upload/images/20210425/20105694y6FYYPF5kX.png

我们再去资料库看就发现新增了一个栏位
(目前没有资料, 如果是有了资料要新增, 会需要给一个预设值)
https://ithelp.ithome.com.tw/upload/images/20210425/20105694ixlbQk8OEZ.png

并且修改 app/Entity/Board.php如下

<?PHP
namespace App\Entity;

use Illuminate\Database\Eloquent\Model;

class Board extends Model {
    //资料表名称
    protected $table = 'board';

    //主键名称
    protected $promaryKey = 'id';

    //可以大量指定异动的栏位(Mass Assignment)
    protected $fillable = [
        'user_id',
        'board_id',
        'email',
        'picture',
        'content',
        'enabled',
    ];
}
?>

<<:  IPv6

>>:  学校体温自动上传爬虫(学习记录)

(Day24) 处理非同步的 Promise

前言 在过去 JS 要处理 Ajax 这个非同步语法,会很容易用到 Callback 写法,而 Ca...

纯Javascript,使用new Date()制作date picker

刚好有一道面试题目,不能使用 input type=date 或任何现有套件,要做出类似Datepi...

Vue.js 从零开始:Hoisting , undefined,not defined

续上一篇文章,写到後面还有一些观念没有讲得很清楚,像是var有Hoisting的特性,coding的...

Day25 订单 -- 重新付款1

再做订单的时候,常常会遇到重新付款的需求, 情境通常发生在使用者购物车加入一拖拉库的项目之後, 因为...

Flutter基础介绍与实作-Day8 Hello Flutter(2)

Flutter的档案 我们这边从比较重要的四个资料夹开始介绍 lib:平常撰写的dart语言程序码都...