Laravel 5.6登录后重定向到登录页面

时间:2018-06-01 14:41:26

标签: php laravel-5.6

解决

解 问题是使用数据库表的主键我只将主键的名称传递给模型中的$ primarykey属性

我为我的laravel应用程序开发了一个登录系统,其中一个表与用户表不同,登录工作正常,但是如果我使用重定向和中间件auth来保护我的路由,我在路由上输入有问题,因为在帖子登录后,应用程序重定向到受保护的路由,并在受保护的路由中输入应用程序返回登录,但用户凭据是正确的。

我的模特用户

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */

    protected $table = 'pessoas';

    protected $fillable = [
        'nome_completo', 'email', 'password',
    ];



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

登录方式

public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');

        //$email = $request->input('email');
        //$password = $request->input('password'));

        if (Auth::attempt($credentials)) {
            //return Auth::user()->nome_completo;
            return redirect()->intended('/usuario/home');
        }
    }

使用中间件和登录路由

Route::group(['middleware' => ['auth']], function () {
    Route::get('/usuario/home', 'Usuarios\UsuarioController@renderHome')->name('home');

    Route::get('/usuario/perfil', function () {
        return view('usuario.meuperfil');
    })->name('perfil');

    Route::get('/usuario/estoque', function () {
        return view('usuario.estoque');
    })->name('estoque');

    Route::get('/usuario/fotos', function () {
        return view('usuario.fotos');
    })->name('fotos');

    Route::get('/usuario/carrinho', function () {
        return view('usuario.carrinho');
    })->name('carrinho');

    Route::get('/usuario/orcamentos', function () {
        return view('usuario.orcamentos');
    })->name('orcamentos');

    Route::get('/usuario/enviados', function () {
        return view('usuario.enviados');
    })->name('enviados');

    Route::get('/usuario/tickets', function () {
        return view('usuario.tickets');
    })->name('tickets');

    Route::get('/usuario/calculadora', function () {
        return view('usuario.calculadora');
    })->name('calculadora');

    Route::get('/usuario/tutorial', function () {
        return view('usuario.tutorial');
    })->name('tutorial');
});



Route::get('/login', function () {
    return view('usuario.login');
})->name('login');

Route::post('/login', 'Usuarios\UsuarioController@login');
Route::get('/logout', 'Usuarios\UsuarioController@logout')->name('logout');

问题的解决方案是什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您的&#34;登录&#34;中间件?不应该是&#34; Auth&#34;中间件?我认为原因是你的中间件。因为你跳到保护路线意味着你的尝试&#34;功能已经成功。