2015-02-16 2 views
0

Любой, почему я не могу засеять данные в postgres sql.Посев в Ларавеле 5

Ниже приведен код для UserTableSeeder.php

<?php 

class UserTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     DB::table('users')->delete(); 
     User::create(array(
      'name'  => 'Chris Sevilleja', 
      'username' => 'sevilayha', 
      'email' => '[email protected]', 
      'password' => Hash::make('awesome'), 
     )); 
    } 
} 

И код DatabaseSeeder.php

<?php 

use Illuminate\Database\Seeder; 
use Illuminate\Database\Eloquent\Model; 

class DatabaseSeeder extends Seeder { 

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

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

} 

Когда я выполнить команду PHP мастеровых дб: семена.

Похоже на ошибку, но данные не сохраняются в таблице.

Спасибо.

+0

Вы 100% Убедитесь, что вы подключены к правой базе данных? Я делаю почти то же самое, и это работает для меня на postgres db. Можете ли вы добавить данные в db из других частей приложения? –

+0

Да. Я уже создал таблицу с именем user. Но когда я запускаю команду php artisan db: seed. Данных не создано. – nujram26

ответ

0

Вы не хотите, чтобы ->delete() таблицы, которые вы посеяли.

скорее, вы хотите, чтобы ->truncate() их, что означает, что все данные удалены.

Вы также можете сделать это на красноречивой модели напрямую, не нужно использовать фасад БД.

не уверен, что если вы просто опустить его для краткости, но вы также хотите импортировать User модель, если она не находится в корневом пространстве имен

так попробовать это

<?php 
use App\User; 

class UserTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     //truncate the table 
     User::truncate(); 

     //create the new user 
     User::create([ 
      'name'  => 'Chris Sevilleja', 
      'username' => 'sevilayha', 
      'email' => '[email protected]', 
      'password' => Hash::make('awesome'), 
     ]); 
    } 
}