本文整理汇总了PHP中Illuminate\Database\Schema\Blueprint::unique方法的典型用法代码示例。如果您正苦于以下问题:PHP Blueprint::unique方法的具体用法?PHP Blueprint::unique怎么用?PHP Blueprint::unique使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Illuminate\Database\Schema\Blueprint
的用法示例。
在下文中一共展示了Blueprint::unique方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create
/**
* Create the table schema.
*
* @param Blueprint $table
*
* @return mixed
*/
protected function create(Blueprint $table)
{
$table->increments('id');
$table->unsignedInteger('job_id');
$table->string('name');
$table->unique(['job_id', 'name']);
$table->timestamps();
}
示例2: testIndexDefaultNames
public function testIndexDefaultNames()
{
$blueprint = new Blueprint('users');
$blueprint->unique(array('foo', 'bar'));
$commands = $blueprint->getCommands();
$this->assertEquals('users_foo_bar_unique', $commands[0]->index);
$blueprint = new Blueprint('users');
$blueprint->index('foo');
$commands = $blueprint->getCommands();
$this->assertEquals('users_foo_index', $commands[0]->index);
}
示例3: addColumn
/**
* Add the field type column.
*
* @param Blueprint $table
* @param AssignmentInterface $assignment
*/
public function addColumn(Blueprint $table, AssignmentInterface $assignment)
{
// Skip if the column already exists.
if ($this->schema->hasColumn($table->getTable(), $this->fieldType->getColumnName() . '_id')) {
return;
}
$table->string($this->fieldType->getColumnName() . '_type')->nullable(!$assignment->isRequired());
$table->integer($this->fieldType->getColumnName() . '_id')->nullable(!$assignment->isRequired());
if ($assignment->isUnique() && $assignment->isTranslatable()) {
$table->unique([$this->fieldType->getColumnName() . '_type', $this->fieldType->getColumnName() . '_id']);
}
}
示例4: describeSchema
/**
* Give me the tools and I will tell you what my schema is...
*
* @param Blueprint $table The blueprint for the database table.
* @return Blueprint The designed database table schema.
*/
public static function describeSchema(Blueprint $table)
{
$table->increments('id');
$table->string('uuid', 36);
$table->integer('playhead')->unsigned();
$table->text('metadata');
$table->text('payload');
$table->string('recorded_on', 32);
$table->text('type');
$table->unique(['uuid', 'playhead']);
return $table;
}
示例5: create
protected function create(Blueprint $table)
{
$table->create();
$table->increments('id');
$table->integer('group_id')->unsigned()->default(3);
$table->string('username', 200)->default('');
$table->string('password', 60)->default('');
$table->string('email', 80)->default('');
$table->string('title', 50)->nullable();
$table->string('realname', 40)->nullable();
$table->string('url', 100)->nullable();
$table->string('location', 30)->nullable();
$table->text('signature')->nullable();
$table->integer('disp_topics')->unsigned()->nullable();
$table->integer('disp_posts')->unsigned()->nullable();
$table->integer('email_setting')->unsigned()->default(1);
$table->boolean('notify_with_post')->default(false);
$table->boolean('auto_notify')->default(false);
$table->boolean('show_smilies')->default(true);
$table->boolean('show_img')->default(true);
$table->boolean('show_img_sig')->default(true);
$table->boolean('show_avatars')->default(true);
$table->boolean('show_sig')->default(true);
$table->float('timezone')->default(0);
$table->boolean('dst')->default(false);
$table->integer('time_format')->unsigned()->default(0);
$table->integer('date_format')->unsigned()->default(0);
$table->string('language', 25)->default('');
$table->string('style', 25)->default('');
$table->integer('num_posts')->unsigned()->default(0);
$table->integer('last_post')->unsigned()->nullable();
$table->integer('last_search')->unsigned()->nullable();
$table->integer('last_email_sent')->unsigned()->nullable();
$table->integer('last_report_sent')->unsigned()->nullable();
$table->integer('registered')->unsigned()->default(0);
$table->string('registration_ip', 35)->default('0.0.0.0');
$table->integer('last_visit')->unsigned()->default(0);
$table->string('admin_note', 30)->nullable();
$table->string('activate_string', 80)->nullable();
$table->string('activate_key', 8)->nullable();
$table->string('remember_token')->nullable();
$table->unique('username');
$table->index('registered');
}
示例6: documentSchema
/**
* @param Blueprint $table table
* @return Blueprint
*/
private function documentSchema(Blueprint $table)
{
$table->string('parentId', 255)->default('');
$table->string('instanceId', 255)->default('');
// users
$table->string('userType', '16')->default('normal');
$table->string('userId', 255);
$table->string('writer', 255);
$table->string('email')->nullable();
// 비회원 작성일때 email 받기?
$table->string('certifyKey', 255);
// nonmember document's password
// count
$table->integer('readCount')->default(0);
$table->integer('commentCount')->default(0);
$table->integer('assentCount')->default(0);
$table->integer('dissentCount')->default(0);
// display contents config values
$table->enum('approved', array('approved', 'waiting', 'rejected'))->default('approved');
$table->enum('published', array('published', 'waiting', 'reserved', 'rejected'))->default('published');
// temp 대신 draft가 어떨까?
$table->enum('status', array('public', 'temp', 'trash', 'private', 'notice'))->default('public');
$table->enum('display', array('visible', 'secret', 'hidden'))->default('visible');
// search
$table->string('locale', 255)->default('');
// multi-language support. ko, en, jp, ...
$table->string('title', 255);
$table->text('content');
$table->text('pureContent');
$table->timestamp('createdAt');
$table->timestamp('publishedAt');
$table->timestamp('updatedAt');
$table->timestamp('deletedAt')->nullable();
// 대댓글 처리를 위한 트리용 컬럼 추가 ex.) head, parent, depth
$table->string('head', 50);
// timestamp + uuid (ex. 1430369257-bd1fc797-474f-47a6-bedb-867a376490f2)
$table->string('reply', 200)->nullable();
$table->string('listOrder', 250);
$table->string('ipaddress', 16);
$table->index('createdAt');
$table->unique(['head', 'reply']);
return $table;
}
示例7: addColumn
/**
* @param Blueprint $table
* @param AssignmentInterface $assignment
*/
public function addColumn(Blueprint $table, AssignmentInterface $assignment)
{
// Skip if the column already exists.
if ($this->schema->hasColumn($table->getTable(), $this->fieldType->getColumnName())) {
return;
}
/**
* Add the column to the table.
*
* @var Blueprint|Fluent $column
*/
$column = $table->{$this->fieldType->getColumnType()}($this->fieldType->getColumnName(), 11, array_get($this->fieldType->getConfig(), 'decimals', 2))->nullable(!$assignment->isTranslatable() ? !$assignment->isRequired() : true);
if (!str_contains($this->fieldType->getColumnType(), ['text', 'blob'])) {
$column->default(array_get($this->fieldType->getConfig(), 'default_value'));
}
// Mark the column unique if desired and not translatable.
if ($assignment->isUnique() && !$assignment->isTranslatable()) {
$table->unique($this->fieldType->getColumnName());
}
}
示例8: unique
/**
* Criar indice unico, respeitando se deve ou nao adicionar o inquilno.
*/
public function unique($columns, $name = null, $withTenant = false)
{
$columns = (array) $columns;
// Verificar se deve adicionar a coluna do inquilino
if ($withTenant && in_array(self::tenantField(), $columns) != true) {
$columns = array_merge([], [self::tenantField()], $columns);
}
return parent::unique($columns, $name);
}
示例9: testAddingUniqueKey
public function testAddingUniqueKey()
{
$blueprint = new Blueprint('users');
$blueprint->unique('foo', 'bar');
$statements = $blueprint->toSql($this->getGrammar());
$this->assertEquals(1, count($statements));
$this->assertEquals('create unique index bar on "users" ("foo")', $statements[0]);
}
示例10: updateColumn
/**
* Update the field type column to the table.
*
* @param Blueprint $table
* @param AssignmentInterface $assignment
*/
public function updateColumn(Blueprint $table, AssignmentInterface $assignment)
{
// Skip if no column type.
if (!$this->fieldType->getColumnType()) {
return;
}
// Skip if the column doesn't exists.
if (!$this->schema->hasColumn($table->getTable(), $this->fieldType->getColumnName())) {
return;
}
/**
* Update the column to the table.
*
* @var Blueprint|Fluent $column
*/
$column = call_user_func_array([$table, $this->fieldType->getColumnType()], array_filter([$this->fieldType->getColumnName(), $this->fieldType->getColumnLength()]));
$column->nullable(!$assignment->isTranslatable() ? !$assignment->isRequired() : true)->change();
if (!str_contains($this->fieldType->getColumnType(), ['text', 'blob'])) {
$column->default(array_get($this->fieldType->getConfig(), 'default_value'));
}
/**
* Mark the column unique if desired and not translatable.
* Otherwise, drop the unique index.
*/
$connection = $this->schema->getConnection();
$manager = $connection->getDoctrineSchemaManager();
$doctrine = $manager->listTableDetails($connection->getTablePrefix() . $table->getTable());
// The unique index name.
$unique = md5('unique_' . $this->fieldType->getColumnName());
/**
* If the assignment is unique and not translatable
* and the table does not already have the given the
* given table index then go ahead and add it.
*/
if ($assignment->isUnique() && !$assignment->isTranslatable() && !$doctrine->hasIndex($unique)) {
$table->unique($this->fieldType->getColumnName(), $unique);
}
/**
* If the assignment is NOT unique and not translatable
* and the table DOES have the given table index
* then we need to remove.
*/
if (!$assignment->isUnique() && !$assignment->isTranslatable() && $doctrine->hasIndex($unique)) {
$column->dropIndex(md5('unique_' . $this->fieldType->getColumnName()));
}
}
示例11: testAddingUniqueKey
public function testAddingUniqueKey()
{
$blueprint = new Blueprint('users');
$blueprint->unique('foo', 'bar');
$statements = $blueprint->toSql($this->getConnection(), $this->getGrammar());
$this->assertEquals(1, count($statements));
$this->assertEquals('alter table users add constraint bar unique ( foo )', $statements[0]);
}
示例12: setColumns
/**
* @param Blueprint $table table
* @return Blueprint
*/
private function setColumns(Blueprint $table)
{
$table->string('parentId', 255)->default('');
$table->string('instanceId', 255)->default('');
$table->string('type', 255)->default('');
// users
$table->string('userType', '16')->default('normal');
$table->string('userId', 255);
$table->string('writer', 255);
$table->string('email')->nullable();
// 비회원 작성일때 email 받기?
$table->string('certifyKey', 255);
// nonmember document's password
// count
$table->integer('readCount')->default(0);
$table->integer('commentCount')->default(0);
$table->integer('assentCount')->default(0);
$table->integer('dissentCount')->default(0);
// display contents config values
$table->integer('approved')->default(Document::APPROVED_APPROVED);
$table->integer('published')->default(Document::PUBLISHED_PUBLISHED);
$table->integer('status')->default(Document::STATUS_PUBLIC);
$table->integer('display')->default(Document::DISPLAY_VISIBLE);
$table->integer('format')->default(Document::FORMAT_HTML);
// search
$table->string('locale', 255)->default('');
$table->string('title', 255);
$table->text('content');
$table->text('pureContent');
$table->timestamp('createdAt');
$table->timestamp('updatedAt');
$table->timestamp('publishedAt')->nullable();
$table->timestamp('deletedAt')->nullable();
$table->string('head', 50);
$table->string('reply', 200);
$table->string('ipaddress', 16);
$table->index('createdAt');
$table->unique(['head', 'reply']);
return $table;
}