收货地址
收货地址是电商网站必须功能,本次需要实现收货地址列表的展示。
1. 整理字段
首先,需要整理好 user_addresses
表的字段名称和类型:
字段和名称 | 描述 | 类型 | 加索引缘由 |
---|---|---|---|
id | 自增长ID | unsigned int | 主键 |
user_id | 该地址所属的用户 | unsigned int | 外键 |
province | 省 | varchar | 无 |
city | 市 | varchar | 无 |
district | 区 | varchar | 无 |
address | 具体地址 | varchar | 无 |
zip | 邮编 | unsigned int | 无 |
contact_name | 联系人姓名 | varchar | 无 |
contact_phone | 联系人电话 | varchar | 无 |
last_used_at | 最后一次使用时间 | datetime null | 无 |
2. 创建模型
通过 make:model
创建新模型:
$ php artisan make:model Models/UserAddress -fm
-fm
参数代表同时生成 factory
工厂文件和 migration
数据库迁移文件
根据上面整理出来的字段编写迁移文件:
_database/migrations/< your_date >create_user_addresses_table.php
.
.
.
public function up()
{
Schema::create('user_addresses', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('province');
$table->string('city');
$table->string('district');
$table->string('address');
$table->unsignedInteger('zip');
$table->string('contact_name');
$table->string('contact_phone');
$table->dateTime('last_used_at')->nullable();
$table->timestamps();
});
}
.
.
.
然后修改模型文件ÿ