在laravel Auth中找不到方法角色

时间:2016-10-04 06:05:51

标签: laravel-5

当我尝试在用户注册部分向用户分配角色时,我一直收到方法未找到错误。

以下是我在AuthController中使用的代码

namespace App\Http\Controllers\Auth;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

use App\User;

class AuthController extends Controller
{

protected function create(array $data)
{
    $user =  User::create([
        'first_name'        => $data['first_name'],
        'last_name'         => $data['last_name'],
        'email'             => $data['email'],


    ])->get();

    $user->roles()->sync([2]);      

    return $user;
}
}

以下是我的用户模型

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;    
use Zizaco\Entrust\HasRole;    
use App\Role;

class User extends Authenticatable
{

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $table = 'users';
    protected $fillable = [
        'first_name','last_name', 'email', 'password'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function roles()
    {
        return $this->belongsToMany('App\Role');
    }


}

我不确定为什么会这样。我想也许它没有正确导入User模型,或者我错过了什么。我是laravel的新手,所以欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

要创建模型,只需使用以下内容:

$user = User::create($attributes)

请注意,我之后没有拨打get()get()将执行返回Collection的查询。我不确定你的Role型号是什么样的,但它现在应该可以正常工作。