laravel — Неустранимая ошибка PHP: вызов неопределенного метода setContainer () во время заполнения в Laravel4

Я пытаюсь установить отношение n: n между пользователем и ролью.
Миграции в порядке, но когда я пытаюсь заполнить базу данных в RoleUserTableSeeder, консоль выдает мне эту ошибку:

Неустранимая ошибка PHP: вызов неопределенного метода CreateForeignKeys :: setContainer () в /var/www/laravel/vendor/laravel/framework/src/Illuminate/Database/Seeder.php в строке 57
{«error»: {«type»: «Symfony \ Component \ Debug \ Exception \ FatalErrorException», «message»: «Вызов неопределенного метода CreateForeignKeys :: setContainer ()», «file»: «/ var / www / laravel /vendor/laravel/framework/src/Illuminate/Database/Seeder.php»,»line»:57}}

Это мои миграции:

2014_10_27_153245_create_users_table.php

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {
public function up()
{
Schema::create('users', function($t) {
$t->string('name', 50);
$t->string('surname', 50);
$t->string('email', 100);
$t->string('username', 20);
$t->string('password', 60);
$t->string('remember_token', 100);
$t->timestamps();
$t->primary('username');
});
}

public function down()
{
Schema::drop('users');
}
}
?>

2014_10_29_162948_create_roles_table.php

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateRolesTable extends Migration {

public function up()
{
Schema::create('roles', function($t) {
$t->increments('id');
$t->string('role',50)->unique();
$t->timestamps();
});
}

public function down()
{
Schema::drop('roles');
}

}

?>

2014_10_29_163350_create_role_user_table.php

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateRoleUserTable extends Migration {

public function up()
{
Schema::create('role_user', function($t) {
$t->increments('id');
$t->integer('role_id')->unsigned();
$t->string('user_username');
});
}

public function down()
{
Schema::drop('role_user');
}

}

?>

2014_10_29_163723_create_foreign_keys.php

<?phpuse Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateForeignKeys extends Migration {

public function up()
{
Schema::table('role_user', function($t) {
$t->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade');
});
Schema::table('role_user', function($t) {
$t->foreign('user_username')->references('username')->on('users')
->onUpdate('cascade');
});
}

public function down()
{
Schema::table('role_user', function($t) {
$t->dropForeign('role_user_role_id_foreign');
});
Schema::table('role_user', function($t) {
$t->dropForeign('role_user_user_username_foreign');
});
}

}

?>

… а это моя сеялка

UserTableSeeder.php

<?php

## Seeder for the user table to create the admin user
class UserTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->delete();
DB::table('users')->insert(array(
'name'      => 'xxxx',
'surname'   => 'xxxx',
'email'     => '[email protected]',
'password'  => Hash::make('admin'),
'username'  => 'admin',
));
}
}
?>

RoleTableSeeder.php

<?php

## Seeder for the role table to create the admin user
class RoleTableSeeder extends Seeder
{
public function run()
{
DB::table('roles')->delete();
DB::table('roles')->insert(array(
'role'      => 'admin'
));
}
}

?>

RoleUserTableSeeder.php

<?php

## Seeder for the role_user table to create the admin user
class RoleUserTableSeeder extends Seeder
{
public function run()
{
DB::table('role_user')->delete();
DB::table('role_user')->insert(array(
'user_username' => 'admin',
'role_id' => Role::getId('admin')
));
}
}

?>

и это моя функция getId в ролевой модели:

Role.php

...
## Return the id of a role
public static function getId($mansion) {
return Role::where('role','=',$mansion)->pluck('id');
}
...

Кто-нибудь может помочь мне исправить эту ошибку?
Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]