小试牛刀 使用 Laravel 编写表单应用

起因

前些日子听到运营反馈:从管理后台生成的内容因没有妥善保存,造成丢失,事后查找起来麻烦。所以这里需要制作表单功能,提交生成的内容以及相关信息。并在前台以列表形式展示出来,类似于网站留言板功能。

先前按照视频学习过 Laravel ,这次将通过实战,重新复习部分内容,并记录下来。相关开发环境和新项目手脚架,可以在初尝 Laravel 5.8 文中找到,这里不再累述。

创建数据库迁移文件

应充分考虑数据表结构,简单来说要保存有用字段。从前端界面来说,有:

  • 链接名称;
  • 链接实体,包含原链接、短链接、重定向链接三种;
  • 链接的类型,依用途区分不同类型;
  • 链接打开后的页面,这里简单地用 id 表示;

用表格表示所有数据库字段:

字段名 字段类型 描述
id int 自增 ID
title string 链接名称
type string 链接类型
short_url string 经过短链接处理后的链接
page_id string 打开后的页面 id
long_url text URL 可能会很长,使用 text 字段类型
redirect_url text 同 long_url

定义该数据表名称为 links ,并创建对应的 Model 和 数据库迁移文件

php artisan make:model Link -m

// created file in
// app/Link.php
// database/migrations/2020_04_12_131409_create_links_table.php

接下来将上面填写好的表格,以配置的形式写入迁移文件中,Artisan 助手已为我们补全了 idtimestamps 基础字段:

// database/migrations/2020_04_12_131409_create_links_table.php

class CreateLinksTable extends Migration
{
    public function up()
    {
        Schema::create('links', function (Blueprint $table) {
            $table->bigIncrements('id');
            // add table field start
            $table->string('title');
            $table->string('type');
            $table->string('short_url');
            $table->string('page_id');
            $table->TEXT('long_url');
            $table->TEXT('redirect_url');
            // add table field end
            $table->timestamps();
        });
    }

   public function down()
    {
        Schema::dropIfExists('links');
    }
}

然后在 Model 中指定空的 guarded 属性,表示无黑名单:

// app/Link.php

class Link extends Model
{
    protected $guarded = [];
}

总结

在岗位上只做自身技术范围的事情,显得太被动。在 Web 应用开发的过程中,前后端技术紧密关联。

制定开发方案前,需要充分了解用户需求,在有限的时间内选择最优的解决方案。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章