大致分为三层
第一层数据库实体(Entity)
文件夹位置 Domain\Entities
主要内容:包含数据库名,表名,主键、字段名、字段验证
保存最原始数据,直接读取的也是最原始数据
第二层数据实体(Model)继承数据库实体
文件夹位置 Domain\Models
主要内容:关联表、追加字段、隐藏显示字段
值转化,
第三层数据仓库(Repository)获取数据实体
文件夹位置 Domain\Repositories
主要内容:读取方法,更新实体
包含获取哪些值,返回数据实体
问题
这样文件变得更复杂、传出来的值都会固定、适应不同接口场景
思考
到底在哪一层操作关联数据库?
使用
<?php
namespace Domain\Entities;
/**
*
* @property integer $id
* @property string $name
* */
class User {
public static function tableName() {
return 'user';
}
protected function rules() {
return [
'name' => 'required|string:0,100',
];
}
protected function labels() {
return [
'id' => 'Id',
'name' => '昵称',
];
}
}
<?php
namespace Domain\Models;
use Domain\Entities\User as UserEntity;
class User extends UserEntity {
protected $hidden = ['password'];
}
<?php
namespace Domain\Repositories;
use Domain\Models\User;
class UserRepository {
public function get($id) {
return
}
}
<?php
namespace Service;
use Domain\Models\User;
class UserController {
protected $user;
public function __construct(UserRepository $user) {
$this->user = $user;
}
public function indexAction($id) {
return $this->render($this->user->get($id));
}
}
转载请保留原文链接: https://zodream.cn/blog/id/48.html