注册后重定向问题
redirect issue after the registration
UserController.php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
function create(Request $request) {
// Validate the request
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:5|max:30',
'cpassword' => 'required|min:5|max:30|same:password'
]);
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = \Hash::make($request->password);
$save = $user->save();
if( $save ) {
//return redirect()->back->with('success', 'you are register successfully');
return redirect()->route('user.create')->with('success', 'you are register successfully');
}
else {
return redirect()->back->with('fail', 'something went wrong, failed to register');
}
}
}
web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\User\UserController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
//Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::prefix('user')->name('user.')->group( function() {
Route::middleware(['guest'])->group( function () {
Route::view('/login','dashboard.user.login')->name('login');
Route::view('/register', 'dashboard.user.register')->name('register');
Route::post('/create',[UserController::class,'create'])->name('create');
});
Route::middleware(['auth'])->group( function () {
Route::view('/home', 'dashboard.user.home')->name('home');
});
});
我对 Google 进行了很多研究并尝试了不同的方法,但我的问题没有得到解决。我只有重定向问题,数据已成功提交到数据库中,如图所示,提交表单时出现以下错误。
如果我使用 return redirect()->back->with('', '');
,那么它会给我这个错误,如图所示:
对于第一个未知路由问题:
你可以试试这个:
Route::post('/user/create',[UserController::class,'create'])->name('create');
而不是:
Route::post('/create',[UserController::class,'create'])->name('create');
在我看来,如果表单未处理并出现错误,那么一旦进入下一页,就没有必要再检查错误了
我认为“不支持 GET 方法..”这个问题来自 表单提交。请重新检查 html 表单方法,如果它设置为 method="get",则将其更新为 method="post"。如果还有问题,请在这里评论。
UserController.php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
function create(Request $request) {
// Validate the request
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:5|max:30',
'cpassword' => 'required|min:5|max:30|same:password'
]);
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = \Hash::make($request->password);
$save = $user->save();
if( $save ) {
//return redirect()->back->with('success', 'you are register successfully');
return redirect()->route('user.create')->with('success', 'you are register successfully');
}
else {
return redirect()->back->with('fail', 'something went wrong, failed to register');
}
}
}
web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\User\UserController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
//Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::prefix('user')->name('user.')->group( function() {
Route::middleware(['guest'])->group( function () {
Route::view('/login','dashboard.user.login')->name('login');
Route::view('/register', 'dashboard.user.register')->name('register');
Route::post('/create',[UserController::class,'create'])->name('create');
});
Route::middleware(['auth'])->group( function () {
Route::view('/home', 'dashboard.user.home')->name('home');
});
});
我对 Google 进行了很多研究并尝试了不同的方法,但我的问题没有得到解决。我只有重定向问题,数据已成功提交到数据库中,如图所示,提交表单时出现以下错误。
如果我使用 return redirect()->back->with('', '');
,那么它会给我这个错误,如图所示:
对于第一个未知路由问题:
你可以试试这个:
Route::post('/user/create',[UserController::class,'create'])->name('create');
而不是:
Route::post('/create',[UserController::class,'create'])->name('create');
在我看来,如果表单未处理并出现错误,那么一旦进入下一页,就没有必要再检查错误了
我认为“不支持 GET 方法..”这个问题来自 表单提交。请重新检查 html 表单方法,如果它设置为 method="get",则将其更新为 method="post"。如果还有问题,请在这里评论。