2014-01-23 3 views
3

나는 내 마이그레이션 파일에 다음과 같습니다 Laravel의 스키마에서 부호있는 증분을 만드는 방법은 무엇입니까?

public function up() 
{ 
    Schema::create('Users', function($table) 
    { 
     $table->engine='InnoDB'; 
     $table->increments('id'); 
     $table->string('name', 255); 
    }); 
} 

지금까지 전체 응용 프로그램이 signed ID를 사용하고, 내가 그들을 signed 할 수있는 방법 때문에이 휴식 싶지 않아? 나는 디폴트 값이 unsigned이고 거기에 ->unsigned() 수식어가 있다는 것을 알고있다. (이것이 기본 값인 지에 대해 이해할 수 없다.) 그러나 이것은 내가 가정했을 때 ->signed()이지만 거기에는 없다. 다음 코드는 오류없이 실행하지만 난 phpMyAdmin이 그것을 볼 때 ID는 아직 서명되지 :
Schema::create('Users', function($table) 
{ 
    $table->engine='InnoDB'; 
    $table->increments('id')->signed(); 
    $table->string('name', 255); 
}); 

내가 officialnon official 문서를 검색하지만 그들 중 누구도 이것에 대해 아무것도 언급하지 않습니다. 그러면 어떻게 할 수 있습니까? signed?

답변

1

자동 증분으로 설정된 정수 열은 서명하려는 경우 트릭 만 수행하면됩니다. 에서

$table->integer('id', true); 

: 프레임 워크/SRC /를 분명히/데이터베이스/스키마/Blueprint.php

/** 
* Create a new integer column on the table. 
* 
* @param string $column 
* @param bool $autoIncrement 
* @param bool $unsigned 
* @return \Illuminate\Support\Fluent 
*/ 
public function integer($column, $autoIncrement = false, $unsigned = false) 
{ 
    return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned')); 
} 
관련 문제