2016-08-20 3 views
2

YAML의 간단한 몇 줄로 모델, 컨트롤러, 뷰, 경로, 마이그레이션을 만드는 데 도움이되는 간단한 생성기를 만듭니다. 모든 것이 지금까지 훌륭해 보이지만 문제가 있었고 그것에 대해 많이 조사했지만 여전히 아무것도 얻지 못했습니다.laravel 마이그레이션 파일을 수동으로 만드는 방법

내 도구가 마이 그 레이션 파일을 생성하는 경우, 마이 그 레이션 파일 이름이 특정 규칙을 따라야하므로 php artisan migrate 명령이 파일을 감지하고 마이그레이션 할 수 있습니다.

파일 이름은 년, 월, 일로 시작해야하며 숫자 다음에 마이그레이션에 대한 설명이 나와야합니다. 예 : . 2014_10_12_000000_create_users_table.php 2014_10_12_100000_create_password_resets_table.php 이제는 파일의 시작 부분에 날짜를 넣는 것이 쉽지만 번호 규칙을 어떻게 따를 수 있습니까? 새 마이그레이션 파일마다 번호가 하나씩 증가합니다.

생성 된 마지막 파일을 감지하여 그 번호를 알 수 있고 마지막으로 만든 마이그레이션 파일보다 큰 번호로 새 마이그레이션 파일을 만들려면 어떻게해야합니까?

이 코드로 마이그레이션 파일 이름을 만듭니다.

$migrationFileName = date('y').'_'.date('m').'_'.date('d').'_'.'create'.ucfirst($name).'Table'; 

그러나 명령 php artisan migrate 아직도 수없이 마이그레이션 할 파일을 검색 할 수 없습니다. 그러면 내가 어떻게 할 수 있니?

Carbon::now()->format('His'); 
+0

'간단한 생성기'는 콘솔 명령입니까? – KmasterYC

+3

필요한 모든 것은 https://github.com/illuminate/database/blob/master/Migrations/MigrationCreator.php#L178 – Winter

+0

겨울입니다. 그것은 효과가있다! –

답변

0

그것은 숫자가 아닌, 그것은 그래서 143710.처럼, 당신은 그것을 얻기 위해 이런 식으로 뭔가를 시도 할 수, 현재 타임 스탬프입니다. 마이그레이션을 만들 자마자 이름 지정 _convention타임 스탬프과 같은 모양이되고 테이블 이름이됩니다.

그렇지 않으면 Laravel Generator을 사용할 수 있습니다. 또는 탄소 시간대를 사용할 수 있습니다.

+0

Carbon을 사용하는 것은 불필요합니다. date ('Y_m_d_His')'는 전체 날짜 접두어로 충분하며 외부 종속성이 필요하지 않습니다. – Winter

+0

동의하면 동일한 결과가 나타납니다. –

0

이 Laravel의 붙박이 메커니즘이다 :

0

실제로 마이그레이션 파일의 이름 지정 형식을 알고 싶다면 Illuminate \ Database \ Migrations \ MigrationCreator 파일을 확인해야합니다. 당신이 순서로 추측되는 수는 실제로 해당 파일에 다음 함수에서 찾을 수있는 타임 스탬프입니다 :

protected function getDatePrefix() 
{ 
    return date('Y_m_d_His'); 
} 

그리고 다음은 전체 파일 이름 생성 기능입니다 :

protected function getPath($name, $path) 
{ 
    return $path.'/'.$this->getDatePrefix().'_'.$name.'.php'; 
} 

는 희망이 도움이 .

+0

감사합니다. 그러나 마이그레이션하는 동안이 오류가 발생했습니다. PHP 구문 분석 오류 : 구문 오류, 예기치 않은 '2016'(T_LNUMBER), 예상 식별자 (T_STRING) –

+0

업데이트 된 코드를 표시 할 수 있습니까? –

관련 문제