【发布时间】:2019-12-28 01:47:17
【问题描述】:
对不起,我是拉丁人,我的英语不好。
我在UserController.php 文件中使用auth 中间件但不起作用,当我尝试从没有登录用户的情况下访问user/profile_picture 和user/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