2016-04-16 101 views
0

我使用遷移創建了用戶表,但無法爲此表播種。我收到以下錯誤,當我運行PHP 工匠DB:在命令行中種子Laravel 5.2用戶表播種器錯誤

[Symfony\Component\Debug\Exception\FatalErrorException] 
     parse error, expecting `"variable (T_VARIABLE)"' 

我UsersTableSeeder.php播種機有下面幾行:

<?php 

use Illuminate\Database\Seeder; 
use App\User; 

class UsersTableSeeder extends Seeder 

{ 

    public function run() 
    { 
     $user = new User; 
     $user->name = 'John Doe'; 
     $user->email = '[email protected]'; 
     $user->password = bcrypt('password');   
     $user->save(); 
    } 

} 

我user.php的模型:

<?php 

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    protected $fillable = [ 
     'name', 'email', 'password', 
    ]; 

    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
} 

我該如何解決這個問題? TIA

回答

0

將此添加到用戶模型並讓用戶模型處理密碼bcrypt並存儲。這種方式可以解決。

UserTableSeeder

public function run() 
    { 
     $user = new User; 
     $user->name = 'John Doe'; 
     $user->email = '[email protected]'; 
     $user->password = 'password';   
     $user->save(); 
    } 

user.php的

Public function setPasswordAttribute($password) 
{ 
    return $this->attributes['password'] = bcrypt($password); 
} 
0

您提供的代碼是沒有錯:)

你能不能給我們詳細?或者你有沒有試過

composer dump-autoloadphp artisan migrate:refresh --seed

0

剛剛嘗試這一點UserTableSeeder

public function run() 
    { 
     User::truncate(); 
     $pavan = User::create([ 
      'name' => 'something', 
      'email' => '[email protected]', 
      'password' => bcrypt('password'), 
      'status' => 1, 
      'theme' => 'green', 
      'is_delete' => 0 
     ]); 
} 

In DatabaseSeeder.php

class DatabaseSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     Model::unguard(); 
     \DB::statement('SET FOREIGN_KEY_CHECKS = 0'); 
     $this->call(UserTableSeeder::class); 
     \DB::statement('SET FOREIGN_KEY_CHECKS=1;'); 
    } 
}