解决
解 问题是使用数据库表的主键我只将主键的名称传递给模型中的$ 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');
问题的解决方案是什么?
感谢您的帮助
答案 0 :(得分:0)
您的&#34;登录&#34;中间件?不应该是&#34; Auth&#34;中间件?我认为原因是你的中间件。因为你跳到保护路线意味着你的尝试&#34;功能已经成功。