【发布时间】:2017-01-28 11:29:07
【问题描述】:
当用户登录或注册时,他应该去仪表板,但不是它,而是位于 /login 页面,该页面甚至不存在,因此发生错误:
抱歉,找不到您要查找的页面。
1/1 RouteCollection.php 第 161 行中的 NotFoundHttpException:
路线:
Route::get('/', function () {
return view('welcome');
})->name('home');
Route::group(['middleware' => ['web']], function(){
Route::get('upload',function(){
return view('files.upload');
});
Route::get('/wallet',[
'uses' => 'WalletController@getwallet',
'as' => 'wallet'
]);
Route::post('/addmoney',[
'uses' => 'WalletController@addmoney',
'as' => 'addmoney'
]);
Route::post('/signup',[
'uses' => 'UserController@postSignUp',
'as' => 'signup'
]);
Route::post('/signin',[
'uses' => 'UserController@postSignIn',
'as' => 'signin'
]);
Route::get('/dashboard',[
'uses' => 'UserController@getDashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
Route::post('/handleUpload','FilesController@handleUpload');
Route::get('/pay', ['as' => 'pay', 'uses' => 'PaymentController@pay']);
# You will need one more.
Route::get('/payment/status', ['as' => 'payment_status', 'uses' => 'PaymentController@status']);
/**
* Using Named Routs to demonstrate all the possibilities.
*/
});
用户控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Input;
use InvalidConfirmationCodeException;
use Flash;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class UserController extends Controller
{
public function getDashboard(){
return view('files.dashboard');
}
public function postSignUp(Request $request)
{
$this -> validate($request,[
'email' => 'required|email|unique:users',
'name' => 'required|max:20',
'password' => 'required|min:4'
]);
$email = $request['email'];
$name = $request['name'];
$password = bcrypt($request['password']);
$user = new User();
$user->email =$email;
$user->name = $name;
$user->password = $password;
$user->save();
return redirect()->route('dashboard');
//Auth::login($user);
}
public function postSignIn(Request $request)
{
$this -> validate($request,[
'email' => 'required',
'password' => 'required'
]);
if (Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) {
return redirect()->route('dashboard');
}
return redirect()->back();
}
}
钱包控制器
public function getwallet(){
return view('files.wallet');
}
public function addmoney(Request $request){
$this->validate($request,[
'amount'=>'required'
]);
$amount = $request['amount'];
$wallet = new Wallet();
$wallet->amount=$amount;
$wallet->save();
return redirect()->route('/addmoney');
}
即使我尝试 localhost:8000/dashboard ,它也会加载为 localhost:8000/login ,显示相同的错误。此外,当我尝试加载 /addmoney 页面时,当用户提交金额并重定向时也会出现同样的问题到下一个 addmoney 页面。
【问题讨论】:
-
在注册时,您只是将新用户插入数据库,但会话没有启动。
-
当我直接使用 /dashboard 时,它甚至无法正常工作。但是,我怎样才能开始会话@P_95。
-
也许通过获取插入用户的 id 并使用以下身份验证方法之一:
Auth::loginUsingId($user->lastInsertId()); -
/dashboard路由可能在 auth 中间件组下,您可能没有登录路由。类似于Route::get('/preSignIn', 'UserController@preSignIn');的东西,它返回登录表单视图。 -
是的,仪表板位于 Web 中间件下,所以我认为如果我将其移除它可能会起作用?还是我必须在用户控制器下创建另一个登录功能? @SanzeebAryal
标签: laravel