数据库课程作业笔记 - 编写模型文件
数据库课程作业笔记 - 编写模型文件
相关参考
创建模型文件
将模型文件放到Models文件下,命名空间使用 App\Models
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
php artisan make:model Models/Employee
php artisan make:model Models/Customer
php artisan make:model Models/Product
php artisan make:model Models/Purchase
php artisan make:model Models/Supplier
模型文件主要部分
员工
class Employee extends Model
{
// 规定表名称,继承填写时默认以小写复数作为表名(Laravel 底层约定)
protected $table = 'employees';
// 字段名称,以常量写出起到全局更改的作用
const TABLE = 'employees';
const ID = 'id';
const NAME = 'ename';
const CITY = 'city';
// fillable 字段用于限制哪些可以被批量赋值,在创建和修改时起到保护作用
protected $fillable = [
self::NAME,
self::CITY
];
// 这里是一对多关系 一个员工拥有多个购买记录
public function purchases()
{
return $this->hasMany(Purchase::class,'eid','id');
}
}
顾客
class Customer extends Model
{
protected $table = 'customers';
const TABLE = 'customers';
const ID = 'id';
const NAME = 'cname';
const CITY = 'city';
const VISITS_MADE = 'visits_made';
const LAST_VISIT_TIME = 'last_visit_time';
protected $fillable = [
self::NAME,
self::CITY,
self::VISITS_MADE,
self::LAST_VISIT_TIME
];
public function purchases()
{
return $this->hasMany(Purchase::class,'cid','id');
}
}
供应商
class Supplier extends Model
{
protected $table = 'suppliers';
const TABLE = 'suppliers';
const ID = 'id';
const NAME = 'sname';
const CITY = 'city';
const TELEPHONE = 'telephone_no';
protected $fillable = [
self::NAME,
self::CITY,
self::TELEPHONE
];
public function products()
{
return $this->hasMany(Product::class,'sid','id');
}
}
产品
class Product extends Model
{
protected $table = 'products';
const TABLE = 'products';
const ID = 'id';
const NAME = 'pname';
const QOH = 'qoh';
const QOH_THRESHOLD = 'qoh_threshold';
const ORIGINAL_PRICE = 'original_price';
const DISCNT_RATE = 'discnt_rate';
const SID = 'sid';
protected $fillable = [
self::NAME,
self::QOH,
self::QOH_THRESHOLD,
self::ORIGINAL_PRICE,
self::DISCNT_RATE,
self::SID
];
public function supplier()
{
return $this->belongsTo(Supplier::class,'sid','id');
}
public function purchases()
{
return $this->hasMany(Purchase::class,'pid','id');
}
}
购买记录
class Purchase extends Model
{
protected $table = 'purchases';
const TABLE = 'purchases';
const ID = 'id';
const CID = 'cid';
const EID = 'eid';
const PID = 'pid';
const QTY = 'qty';
const PTIME = 'ptime';
const TOTAL_PRICE = 'total_price';
protected $fillable = [
self::CID,
self::EID,
self::PID,
self::QTY,
self::PTIME,
self::TOTAL_PRICE
];
public function customer()
{
return $this->belongsTo(Customer::class,'cid','id');
}
public function employee()
{
return $this->belongsTo(Employee::class,'eid','id');
}
public function product()
{
return $this->belongsTo(Product::class,'pid','id');
}
}
这里没有完成Log表的操作,将在下一个实验完成,在创建完模型后我们去填充数据库
本作品采用《CC 协议》,转载必须注明作者和本文链接