抱歉,我是拉丁人,英语不好。
我在UserController.php
文件中使用了auth
中间人,但不起作用,当我尝试访问user/bio
user/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");
做。