繁体   English   中英

类型错误:参数1传递给Illuminate \\ Auth \\ SessionGuard :: login()寄存器上的重定向不起作用

[英]Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() redirection on register does not work

我在控制器上有此控件,但是重定向不起作用,它说类型错误:参数1传递给Illuminate \\ Auth \\ SessionGuard :: login(),到目前为止,我已经尝试过了,但是没有

<?php

namespace App\Http\Controllers\Auth;

use App\Events\NewUserWasRegistered;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Validator;
use Auth;

class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;

    /**
     * Where to redirect users after login / registration.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     *
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        $rules = [
                'email'                => 'required|email|max:255|unique:users',
                'password'             => 'required|confirmed|min:6',
                'g-recaptcha-response' => 'required|captcha',
                'allow_register'       => 'required|accepted',
            ];

        if (app()->environment('local') || app()->environment('testing')) {
            unset($rules['g-recaptcha-response']);
        }

        $data['allow_register'] = config('root.app.allow_register', true);

        $messages = [
            'allow_register.accepted' => trans('app.allow_register'),
        ];

        return Validator::make($data, $rules, $messages);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     *
     * @return User
     */
    protected function create(array $data)
    {

        $user = User::create([
            'username' => md5("{$data['name']}/{$data['email']}"),
            'name'     => $data['name'],
            'email'    => $data['email'],
            'password' => bcrypt($data['password']),
            'role_id'     => $data['role'],

        ]);


        event(new NewUserWasRegistered($user));
          if($user){

                if ($user->role_id == 0) {

                   Auth::login($user);
                    return redirect('user/businesses');


                }else if($user->role_id == 1){

                    Auth::login($user);
                    return 'Working on..';
                }
            }

        // return $user;
    } 
}

有人可以帮我吗,我被困住了,我已经尝试了很多东西,但是我是编码方面的新手,所以也许你会明白,如果是我要求太多的话

App\\Models\\User 必须实现接口/合同Illuminate\\Contracts\\Auth\\Authenticatable

“如果需要将现有用户实例登录到应用程序中,则可以使用该用户实例调用login方法。给定的对象必须是Illuminate\\Contracts\\Auth\\Authenticatable合同的实现。当然, App\\User Laravel随附的模型已经实现了此接口...”

Laravel 5.7 Docs-身份验证-手动身份验证用户-其他身份验证方法

边注:

该控制器的create方法用于获取数据数组并创建一个新的User并返回该User实例。 没有其他的。 开箱即用的registration流程仅调用该方法即可创建用户。 然后,它将执行登录以及其他所有操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM