홈>
"MethodNotAllowedHttpException 오류가 발생합니다. 사용자의 양식을 제출할 때 메시지가 표시되지 않습니다. 사용자 테이블을 업데이트하기위한 것입니다. 같은 페이지에 두 개의 게시물 양식과 두 개의 게시물 경로가 있는데 그와 관련이 있습니까?
모든 경로와 충돌 할 수있는 다른 형식을 포함하겠습니다.
web.php
Route::get('profile','[email protected]');
Route::post('profile', '[email protected]_avatar');
Route::post('profile-update', '[email protected]_account'); //this ones not working
userController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Auth;
use Image;
class UserController extends Controller
{
//
public function profile()
{
return view('profile', array('user' => Auth::user()) );
}
public function update_avatar(Request $request)
{
if($request->hasFile('avatar')){
$avatar = $request->file('avatar');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300,300)->save( public_path('/uploads/avatars/' . $filename) );
$user = Auth::user();
$user->avatar = $filename;
$user->save();
}
return view('profile', array('user' => Auth::user()) );
}
public function update_account(Request $request, $id) //the function with the error
{
User::update([
'id' => Auth::user()->id,
'name' => $request->name,
'email' => $request->email
]);
return redirect('/profile');
}
}
profile.blade.php
<img src="/uploads/avatars/{{ $user->avatar }}" style="width:150px;height:150px;float:left;border-radius:50%;margin-right:25px">
<h2>{{ $user->name }}'s Profile</h2>
<form enctype="multipart/form-data" action="/profile" method="post">
<label>Update Profile Image</label>
<input type="file" name="avatar">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="submit" class=" btn btn-sm btn-light" style="color:#2b2b2b;" value="Update Image">
</form>
<form method="post" action="/profile-update"> <!-- The form with the error -->
{{ method_field('put') }}
{{ csrf_field() }}
<input type="hidden" name="_method" value="PUT" />
<label>Username</label>
<input type="text" name="name" class="form-control" value="{{ $user->name }}">
<label>Email</label>
<input type="email" name="email" class="form-control" value="{{ $user->email }}">
<input type="submit" id="update-account" class="btn btn-success" value="Update">
</form>
- 답변 # 1
- 답변 # 2
"profile-update"에 대한 PUT 요청을 처리 할 수있는 경로가 없습니다. 양식에서 다음 기능을 정의했습니다.
{{ method_field('put') }}
이 헬퍼 함수는 Laravel이 현재 요청을 PUT으로 만 처리하기 위해 사용할 숨겨진 입력 필드를 생성합니다.
이 작업을 수행하려면 위의 도우미 기능을 제거하여 요청을 POST로 설정하거나 경로 방법을 PUT으로 변경해야합니다.
Route::put('profile-update', '[email protected]_account');
- 답변 # 3
동일한 답변이 필요할 수있는 사람들을 위해이 문제를 해결하려면 꽤 오랫동안 게임을해야했고 제안 된 답변의 비트를 사용하여 문제를 완전히 해결했습니다.
<올>web.php에 라우트 방법을 변경했습니다.
업데이트 계정 기능을 @TonzFale 답변으로 대체했지만
$user = User::find($id)
로 교체$user = User::find(Auth::user()->id);
와 함께 .
관련 자료
- node.js - serve -s 빌드를 실행하는 동안 오류 메시지가 나타납니다
- typescript - Angular에서 삭제 작업을 수행하려고 할 때 오류가 발생합니다
- javascript - Cypress에서 오류 메시지를 확인하는 방법은 무엇입니까?
- php - Laravel 일대일 관계가 작동하지 않으면 null 메시지 만 표시됩니다
- laravel의 vendor \ laravel \ framework \ src \ illuminate \ container \ containerphp - 833 오류
- php - laravel 8 - auth 디렉토리의 경로가 정의되지 않았습니다
- php - Laravel 컨트롤러가 테이블을 업데이트하지 않음
- windows 업데이트를 실행할 수 없음 - 오류 0x800f081f
- python - 셀렌 - chromedriver 파일을 찾을 수 없음 오류 메시지
- oracle - ora-01407 - null로 갱신 할 수 없습니다 실제 번호를 얻으려고합니다
- api - laravel 8 양식 유효성 검사가 작동을 멈추고 오류가 발생합니다
- Azure PowerShell에서 사용자 지정 오류 메시지를 표시하고 종료합니다
- php - 라 라벨 - 제품 생성을 시도 할 때 무결성 제약 위반
- python - 목록에 문자열을 삽입하려고 할 때이 오류가 발생하는 이유는 무엇입니까?
- javascript - firebase-storage에서 다운로드 URL을 가져 오는 동안 오류가 발생했습니다
- r - Ubuntu 2004에서 Radian을 사용하여 패키지를 설치하는 중 오류 발생
- Ajax laravel 업데이트 함수에서 열은 null 일 수 없습니다
- javascript - 오류 메시지를 생성하여 consoleerror ()와 같은 추적을 가져옵니다
- ubuntu18.04 - apt 또는 apt-get 사용시 오류 메시지
- php - 1905 및 2002로 업데이트 한 후 Nextcloud 느린 응답/504 오류
관련 질문
- Laravel -Route::resource 대 Route::controller
- php : 데이터베이스에서 호출할 때 이미지를 표시하는 데 문제가 있습니다.
- php : 이 상황에서 컨트롤러의 show 기능을 어떻게 사용합니까? 라라벨 5.8
- php : Laravel에서 개인 정보 보호 제한이 있는 파일 업로드, 저장 및 다운로드
- ajax : 경로는 참조할 때 작동하지만 제공된 링크로 이동하면 laravel에서 컨트롤러 기능을 찾을 수 없습니다.
- php : 데이터베이스의 다른 필드에 여러 파일을 업로드하는 Laravel
- php : laravel에서 기본 키 자체를 외래 키로 설정하는 방법은 무엇입니까?
- php : Laravel 8 컨트롤러 하위 폴더 라우팅 문제
- 새 세션을 시작하기 전에 현재 PHP 장인 서비스 세션을 어떻게 종료할 수 있습니까?
- Laravel -내 프로젝트에서 localhost 전용 홈 페이지 경로가 작동하는 이유
이 방법을 시도하십시오 :