【问题标题】:Middleware 'auth' does not work in Laravel 5.8中间件“身份验证”在 Laravel 5.8 中不起作用
【发布时间】:2019-12-28 01:47:17
【问题描述】:

对不起,我是拉丁人,我的英语不好。

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

web.php:

Route::get("/", function(){
   return view('welcome');
});

Route::get('home', 'HomeController@index')->name('home');

Route::get("admin/users/seller_register", "Auth\RegisterController@showSellerRegistrationForm")
   ->name("users.seller_register_form");
Route::post("admin/users/seller_register", "Auth\RegisterController@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 App\Http\Controllers;

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use App\User;

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 \Illuminate\Http\Response
    */
   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  \Illuminate\Http\Request
    * @return \Illuminate\Http\Response
    */
   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  \Illuminate\Http\Request
    */
   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]));
   }
}

【问题讨论】:

  • 您能否扩展“当我尝试访问时”?如何?从链接?你能在这里展示你的刀片文件吗?错误消息告诉您您发送的请求类型错误。
  • Route::post("user/profile_picture" ...)
  • 我可以将文件发送到 GET HTTP 请求中吗?

标签: php laravel middleware laravel-5.8


【解决方案1】:

试试这个使用get方法

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

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

【讨论】:

  • 我可以将文件发送到 GET HTTP 请求中吗?
  • 否,如果你想将图像存储到数据库,你想使用表单方法 post route post 和 multipart-form data
【解决方案2】:

只需更改这些路线

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");

完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 2015-07-19
    • 2016-10-21
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多