2013-02-08 3 views
3

Laravel 4 (--bench = "vendor/package"/ --package = "vendor/package"사용)에서 패키지 마이그레이션을 설정하는 방법을 알고 있습니다.Laravel 4의 패키지 테이블 시드 시드

하지만 마이그레이션을 위해 시드를 설정하는 방법을 알아낼 수 없습니까?

- 명확히하기 위해 - 필자는 독립 실행 형 패키지의 시드 파일을 설정하는 방법에 대해 알아야 할 시드러 사용 방법을 알고 있습니까? 패키지에 별도의 마이그레이션을 제공 할 수 있습니다.

+0

귀하의 질문은 약간 모호합니다 -하지만 왜 당신은 단지 db : seed를 사용할 수 없습니까? – Laurence

+0

좀 더 명확하게하기 위해 업데이트했습니다. –

답변

6

app 폴더와 같은 Seeder 클래스를 사용할 수 있습니다.

Database Seeding in Laravel 4

exemple 들어

:에

<?php 

use Illuminate\Database\Seeder; 
use Page; 

class MySeeder extends Seeder { 

    public function run() 
    { 
     Page::create(array('title' => 'Foo-Bar !')); 
    } 

} 

및 지정 "--class"인수 :

$ php artisan db:seed --class="MySeeder" 

이 클래스는 작곡가 :

+0

우수 감사합니다. @ pierrepierre-broucz. $ php artisan db : seed --class = "Vendor \ Package \ MySeeder" –

+0

"MySeeder"클래스가 작곡가에 의해 올바르게로드되었다고 가정하면 시드를 호출하면됩니다.'- class = "MySeeder"', 완전한 경로는 아닙니다. –

+0

이 작업이 적절합니까? 질문을 폴더 구조로 업데이트하면 composer.json 매개 변수에 도움이됩니다 –

3
에 의해로드 할주의

레벨 데이터베이스 시더작곡가이 모든 클래스를 성공적으로로드 한 경우, 전달 된 클래스 이름을 모호하게 인식합니다. 하는 시더 클래스를 생성

  1. {vendor}/{package}/src
  2. 아래 seeds 폴더를 만듭니다 예를 들어, {Package}Seeder.php 일하는 것이, 충돌을 방지하기 위해 패키지 이름으로 접두사 다음과 같이하십시오.
  3. 패키지에 seeds 폴더를 새로 추가하십시오. composer.json 자동로드 클래스 맵 배열.
  4. 터미널에서 패키지 루트 폴더에서 composer update을 실행하십시오. 실행 터미널에서
  5. , php artisan db:seed --class={Package}Seeder (새 클래스의 이름으로 클래스 이름을 바꿉니다.) 그것 뿐이다

. 이제 패키지의 씨앗을 실행할 수 있습니다.

M

2

당신의 씨앗 파일이 충돌, 당신은 시드 파일에

namespace YourPackage\Name; 

class DatabaseSeeder extends Seeder { 

을 네임 스페이스를 추가 할 수 없습니다 있는지 확인하고 다음 FQCN

$ php artisan db:seed --class="YourPackage\Name\DatabaseSeeder" 
와 장인 명령을 실행하려면

또는 따옴표를 사용하지 않는 경우

$ php artisan db:seed --class=YourPackage\\Name\\DatabaseSeeder