public function testMetaOperate() { Schema::dropIfExists('users_meta'); $mock = ['name' => 'hello', 'email' => '*****@*****.**', 'password' => md5('123456'), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')]; $user = $this->operator->reset()->insert($mock); // test auto build meta table $this->assertFalse(Schema::hasTable('users_meta'), 'expect users_meta not exist, but not'); $this->operator->meta($user['id'], 'meta.key', $mock); $this->assertTrue(Schema::hasTable('users_meta'), 'expect users_meta exist, but not'); // test find meta $value = $this->operator->meta($user['id'], 'meta.key'); $this->assertEquals($mock, $value); // test set multi meta value $this->operator->metadata($user['id'], ['age' => 16, 'nick' => 'codelint', 'ext' => ['something...']]); $age = $this->operator->meta($user['id'], 'age'); $this->assertEquals(16, $age); $nick = $this->operator->meta($user['id'], 'nick'); $this->assertEquals('codelint', $nick); $metadata = $this->operator->metadata($user['id']); $this->assertEquals(['meta.key' => $mock, 'age' => 16, 'nick' => 'codelint', 'ext' => ['something...']], $metadata); $this->operator->metadata($user['id'], ['age' => 17, 'nick' => 'ray', 'sex' => '***']); $metadata = $this->operator->metadata($user['id']); $this->assertEquals(['meta.key' => $mock, 'age' => 17, 'nick' => 'ray', 'sex' => '***', 'ext' => ['something...']], $metadata); }
public function updateBy($obj, $cri) { $orig = $obj; if (isset($obj['value'])) { $obj['value'] = json_encode($obj['value']); } parent::updateBy($obj, $cri); return $orig; }