【问题标题】:Laravel 5.2 Error App\User cannot use Illuminate\Foundation\Auth\User - it is not a traitLaravel 5.2 错误 App\User 无法使用 Illuminate\Foundation\Auth\User - 这不是特征
【发布时间】:2016-09-11 05:00:17
【问题描述】:

我对 laravel 5.2 还是很陌生。现在我正在尝试创建一个自定义登录。我创建了登录 html。在提交时,函数显示错误

App\User 不能使用 Illuminate\Foundation\Auth\User - 这不是 trait

我找不到错误所在。代码如下

Routes.php

Route::post('/', 'Admin\LoginController@postLogin');

LoginController.php

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

use Auth;
use Request;


class LoginController extends Controller {

public function index() {
    return view('admin.login');
}

public function register() {
    return view('admin.register');
}

public function postLogin() {
    $email = Request::input('email');
    $password = Request::input('password');

    if (Auth::attempt(['email' => $email, 'password' => $password])) {
        //echo "success";
        return redirect('admin/dashboard');
    } else {
        return redirect('/');
    }
}

}

User.php

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract {

use Authenticatable,
    CanResetPassword;

protected $table = 'users';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['keyword', 'remember_token'];

}

Auth.php

<?php

return [



'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'users' => [
        'driver' => 'eloquent',
        'model' => 'App\User',
        'table' => 'users',
        'password' => [
            'email' => 'emails.password',
            'expire' => 60,
        ],
    ],
],

'passwords' => [
    'users' => [
        'provider' => 'users',
        'email' => 'auth.emails.password',
        'table' => 'password_resets',
        'expire' => 60,
    ],
],
];

我正在学习here的教程

请帮助我。我从过去几个小时就被困在这里

【问题讨论】:

    标签: php laravel authentication laravel-5.2


    【解决方案1】:

    你应该使用这个命名空间:

    use Illuminate\Auth\Authenticatable;
    

    这是你应该使用的特性。现在,您正在尝试将类用作特征:

    use Illuminate\Foundation\Auth\User as Authenticatable;
    
    class User {
    
        use Authenticatable ...
    

    【讨论】:

    • 谢谢。但现在它显示错误Cannot use Illuminate\Auth\Authenticatable as Authenticatable because the name is already in use
    • 你能显示完整的当前代码吗('namespace, class, use'部分)。
    • 我已经发布了我认为必要的代码。哪些都需要展示?
    • 用户应该extend Authenticatable,它不应该use 它。
    • @AlexeyMezenin,非常感谢你......它工作得很好......再次感谢你...... :)
    猜你喜欢
    • 2018-02-11
    • 2017-05-03
    • 2016-08-11
    • 2016-04-03
    • 2023-04-04
    • 2020-07-16
    • 2020-08-16
    • 2017-03-17
    • 2016-04-02
    相关资源
    最近更新 更多