保存实体
引入相关类
- use Leevel\Database\Ddd\Entity;
- use Tests\Database\DatabaseTestCase as TestCase;
- use Tests\Database\Ddd\Entity\TestConstructPropBlackEntity;
- use Tests\Database\Ddd\Entity\TestConstructPropWhiteEntity;
- use Tests\Database\Ddd\Entity\TestCreateAutoFillEntity;
- use Tests\Database\Ddd\Entity\TestCreatePropWhiteEntity;
- use Tests\Database\Ddd\Entity\TestEntity;
完整例子
public function testBaseUse()
{
$entity = new TestEntity();
$this->assertInstanceof(Entity::class, $entity);
$entity->name = 'foo';
$this->assertSame('foo', $entity->name);
$this->assertNull($entity->flushData());
$entity->save();
$data = <<<'eot'
{
"name": "foo"
}
]
eot;
$this->assertSame(
$data,
$this->varJson(
$entity->flushData()
)
);
::: tip
通过 save 方法保存一个实体,并通过 flush 将实体持久化到数据库。
:::
完整模型
public function testConsturctPropWhite()
{
'id' => 5,
'name' => 'foo',
]);
$this->assertSame(5, $entity->getId());
$this->assertNull($entity->getName());
}
完整模型
调用 construct_prop_black => true
来设置字段黑名单,一旦设置了黑名单处于黑名单的数据无法通过构造器更新模型属性。
public function testConsturctPropBlack()
{
$entity = new TestConstructPropBlackEntity([
'id' => 5,
'name' => 'foo',
]);
$this->assertNull($entity->getId());