中间件'auth'在 Laravel 5.8 中不起作用



抱歉,我是拉丁人,英语不好。

我在UserController.php文件中使用了auth中间人,但不起作用,当我尝试访问user/biouser/profile_picture并从没有登录用户 Laravel 的路由时,会抛出The GET method is not supported for this route. Supported methods: POST.异常。

网络.php:

Route::get("/", function(){
return view('welcome');
});
Route::get('home', 'HomeController@index')->name('home');
Route::get("admin/users/seller_register", "AuthRegisterController@showSellerRegistrationForm")
->name("users.seller_register_form");
Route::post("admin/users/seller_register", "AuthRegisterController@sellerRegister")
->name("users.seller_register");
Route::get("admin/users/modal_delete_form", "AdministratorController@modalDeleteForm");
Route::get("admin/users/modal_update_form", "AdministratorController@modalUpdateForm");
Route::get("admin/users/crud_content", "AdministratorController@crudContent");
Route::resource('admin/users', 'AdministratorController');
Route::get("user/profile/{e_mail}", "UserController@profile")->name("user.profile");
Route::post("user/profile_picture", "UserController@profilePicture")->name("user.profilePicture");
Route::post("user/bio", "UserController@bio")->name("user.bio");
Auth::routes(["verify" => true]);

用户控制器.php:

namespace AppHttpControllers;
use IlluminateSupportFacadesStorage;
use IlluminateHttpRequest;
use AppUser;
class UserController extends Controller{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct(){
$this->middleware("auth");
}
/**
* Display the user profile.
*
* @param  String  $e_mail
* @return IlluminateHttpResponse
*/
public function profile($e_mail){
$user = User::where("e_mail", "=", $e_mail)->first();
return(view("user.profile")->with(["user" => $user]));
}
/**
* Store the user profile picture.
*
* @param  IlluminateHttpRequest
* @return IlluminateHttpResponse
*/
public function profilePicture(Request $request){
$user = User::where("e_mail", $request->e_mail)->first();
if($request){
if($request->hasFile("profilePicture")){
if($user->profile_picture === "public/defaultUserPhoto.jpg"){
$path = Storage::putFile('public', $request->file('profilePicture'));
}else{
Storage::delete($user->profile_picture);
$path = Storage::putFile("public", $request->file('profilePicture'));
}
$user->update(["profile_picture" => $path]);
}
}
return(redirect()->route("user.profile", ["e_mail" => $user->e_mail]));
}
/**
* Update user biography and occupation.
*
* @param  IlluminateHttpRequest
*/
public function bio(Request $request){
$user = User::where("e_mail", $request->e_mail)->first();
if($request){
$user->update([
"occupation" => $request->occupation,
"biography" => $request->biography
]);
}
return(redirect()->route("user.profile", ["e_mail" => $user->e_mail]));
}
}

试试这个使用get方法

Route::get("user/profile_picture","UserController@profilePicture")->name("user.profilePicture");
Route::get("user/bio", "UserController@bio")->name("user.bio");

只需更改这些路线

Route::post("user/profile_picture", "UserController@profilePicture")->name("user.profilePicture");
Route::post("user/bio", "UserController@bio")->name("user.bio");

自。。。

Route::get("user/profile_picture", "UserController@profilePicture")->name("user.profilePicture");
Route::get("user/bio", "UserController@bio")->name("user.bio");

做。

最新更新