Laravel: заполнение таблиц, отличных от Users

ОБНОВЛЕНИЕ: я собираюсь включить свой полный файл, заменяющий частичный вид, который у меня был. Сидер для таблицы User работает, а для таблицы Groups нет. У меня есть эти таблицы, созданные Sentry, но я создал только модель для групп, в которой нет ничего, кроме объявления класса. Не знаю, что еще включить.

<?php

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Eloquent::unguard();

        //User::create(array('email' => '[email protected]'));

        // $this->call('UserTableSeeder');

        $this->command->info('User table seeded!');
    }
    }


    class UserTableSeeder extends Seeder {

        public function run()
        {
             User::create(array(
                       'username' => 'alvaro',
                       'permissions' =>'{"user":1}'
                       ));

            $this->command->info('User table seeded!');
        }
    }   


    class GroupTableSeeder extends Seeder {

        public function run()
        {
             Group::create(array(
                       'name' => 'usuario',
                       'permissions' =>'{"user":1}'
                       ));

            $this->command->info('Group table seeded!');
        }
    }   

Но на самом деле мне нужны таблицы Groups (я на Sentry). Да, я создал модель для группы как Group.php, но я не знаю, как определить ее содержимое. Иногда я видел в других случаях, что достаточно просто определить класс, но здесь я не знаю, это не работает так просто.

Просто делаю что-то вроде

class GroupTableSeeder extends Seeder

не будет работать, так как он говорит, что такого класса не существует.


person Niklas Lezipski    schedule 22.12.2014    source источник
comment
Вы сначала выполнили миграцию Sentry? Команда должна быть: php artisan migrate --package=cartalyst/sentry, которая создаст таблицы users, groups, throttle и users_groups в вашей базе данных.   -  person Tim Lewis    schedule 22.12.2014
comment
да, у меня есть все эти таблицы. Я запускал все с помощью Syntara, включая sentry.   -  person Niklas Lezipski    schedule 22.12.2014
comment
Что произойдет, если вы раскомментируете строку с $this->call('UserTableSeeder')? Значит ли это, что класса тоже не существует?   -  person user1669496    schedule 22.12.2014
comment
да, когда я запускаю GroupTableSeeder, раскомментировав вызов $this-›('UserTableSeeder'), также повторяется то же сообщение   -  person Niklas Lezipski    schedule 22.12.2014
comment
В другом сообщении говорится, что необходимо использовать файлы с пространством имен, например: // database/seeds/UserTableSeeder.php ‹?php use Illuminate\Database\Seeder; используйте Приложение\Пользователь; но я не знаю, как применить это к группе   -  person Niklas Lezipski    schedule 22.12.2014


Ответы (1)


Единственное, что мне нужно было сделать, это создать отдельный файл с таким именем GroupTableSeeder.php

и вставьте код туда. По какой-то причине, хотя UserTableSeeder может находиться внутри файла с именем DatabaseSeeder и работает, он не работает для других таблиц.

class GroupTableSeeder extends Seeder {

        public function run()
        {
             Group::create(array(
                       'name' => 'basicuser',
                       'permissions' =>'{"user.create" :-1,"user.delete" :-1,"user.view":1,"user.update":-1,"post.create":1}'
                       ));

            $this->command->info('Group table seeded!');
        }
    }   
person Niklas Lezipski    schedule 22.12.2014
comment
Никто не собирается минусовать вас за ответ на ваш собственный вопрос. Это нормально. В будущем постарайтесь предоставлять код для всего, что вы делаете, включая ответы, чтобы другие могли видеть, как вы это исправили, и учиться на этом. Я думал, может быть, проблема была в структуре папок/классов, но вы, кажется, поняли это. Молодец, продолжай в том же духе. - person Tim Lewis; 22.12.2014
comment
Я включил код, он такой же, как и выше, только он должен был идти в отдельном файле. - person Niklas Lezipski; 22.12.2014
comment
Ответить на свой вопрос было правильным решением. Только не забудьте принять свой собственный ответ! (хотя вам придется подождать 48 часов) Также вы не можете опускаться ниже 1 повторения;) - person lukasgeiter; 22.12.2014