홈>
"MethodNotAllowedHttpException 오류가 발생합니다. 사용자의 양식을 제출할 때 메시지가 표시되지 않습니다. 사용자 테이블을 업데이트하기위한 것입니다. 같은 페이지에 두 개의 게시물 양식과 두 개의 게시물 경로가 있는데 그와 관련이 있습니까?
모든 경로와 충돌 할 수있는 다른 형식을 포함하겠습니다.
web.php
Route::get('profile','userController@profile');
Route::post('profile', 'userController@update_avatar');
Route::post('profile-update', 'userController@update_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', 'userController@update_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 오류
관련 질문
- php - 여러 파일에서 Lumen 6X 경로 분할
- laravel - 인증 후 URL을 조건부로 리디렉션하도록 설정
- 가능한 경우 기존 PDF 컨텐츠 위치를 읽고 laravel의 기존 컨텐츠 위에 일부 컨텐츠를 추가 할 수 있습니까?
- php - 라 라벨 8 - 컨트롤러에서보기로 데이터를 전달할 수 없음-> 정의되지 않은 변수 $test
- php - 요청 검증에서 config () 사용하기
- php - Laravel에서 잘못된 파일 업로드 경로
- php - 파일 저장 문제
- laravel - null에 멤버 함수 details ()를 호출 하시겠습니까?
- php - Maatwebsite를 사용한 압축 문제
- or where clause - 또는 where 절 - 라 라벨 웅변
이 방법을 시도하십시오 :