2013-02-08 5 views
3

Мне известно, как настроить миграцию пакетов на Laravel 4 (с использованием --bench = "vendor/package"/--package = "vendor/package").Таблицы упаковочных пакетов в Laravel 4

Но я не могу понять, как настроить семена для этих миграций?

- Чтобы уточнить - я знаю, как использовать сеялку, что мне нужно знать, как настроить файл семян для отдельного пакета? Вы можете предоставить пакет отдельных миграций ...

+0

Ваш вопрос немного расплывчатый - но почему вы не можете использовать db: seed? – Laurence

+0

Я обновил его, чтобы сделать его более понятным. –

ответ

6

Вы можете использовать класс 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 ремесленник дб: Семя --class = «Vendor \ Пакет \ MySeeder» –

+0

Предполагая, что класс «MySeeder» правильно загружена композитором, вам просто нужно позвонить сеялку: '- class = "MySeeder", а не полный путь. –

+0

Эта работа отлично подходит для вас? если вы обновите вопрос своей структурой папок, я могу помочь вам в параметрах composer.json. –

3

Laravel Database Seeder aut omagically распознает любое имя класса, переданное ему, до тех пор, пока Composer успешно загрузил все ваши классы. Выполните следующие действия:

  1. Создать папку seeds под {vendor}/{package}/src
  2. Создать класс сеялки, префикс с именем вашего пакета, чтобы избежать конфликтов, например, {Package}Seeder.php будет работать.
  3. Добавить новую папку seeds на ваш пакет composer.json автозагрузка classmap array.
  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 
Смежные вопросы