【问题标题】:Laravel 5.2 User table seeder errorLaravel 5.2 用户表播种器错误
【发布时间】:2016-08-08 17:00:55
【问题描述】:

我使用迁移创建了一个用户表,但无法为该表设定种子。当我从命令行运行 php artisan db:seed 时出现以下错误

[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 = 'john@gmail.com';
        $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

【问题讨论】:

    标签: php mysql laravel laravel-5.2 laravel-artisan


    【解决方案1】:

    将此添加到用户模型并让用户模型处理密码bcrypt和存储。这样就可以解决了。

    UserTableSeeder

    public function run()
        {
            $user = new User;
            $user->name = 'John Doe';
            $user->email = 'john@gmail.com';
            $user->password = 'password';        
            $user->save();
        }
    

    用户.php

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

    【讨论】:

      【解决方案2】:

      你提供的代码没有错:)

      你能告诉我们更多细节吗?或者你有没有尝试过

      composer dump-autoloadphp artisan migrate:refresh --seed

      【讨论】:

        【解决方案3】:

        尝试直接插入数据库,如文档所述:

        https://laravel.com/docs/5.2/seeding

        public function run()
        {
            DB::table('users')->insert([
                'name' => 'John Doe',
                'email' => 'john@gmail.com',
                'password' => bcrypt('password'),
            ]);
        }
        

        【讨论】:

          【解决方案4】:

          试试这个 UserTableSeeder

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

          在 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;');
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2014-08-26
            • 2014-12-08
            • 2014-11-26
            • 1970-01-01
            • 1970-01-01
            • 2014-07-28
            • 1970-01-01
            • 2019-11-14
            • 1970-01-01
            相关资源
            最近更新 更多