此路由不支持 GET 方法。支持的方法:PUT。与放置形式。 Laravel
The GET method is not supported for this route. Supported methods: PUT. with put forms. Laravel
实际上我的一个表单有问题,它允许用户更改他的个人资料图片。
当我提交文件时,此 URI 正在加载 localhost/projetT/public/profil/icone/2 但没有任何反应。如果我重新加载 URI,因为加载非常非常长,我会收到此错误:
此路由不支持 GET 方法。支持的方法:PUT。我需要帮助。
<div class="container bg-primary rounded mt-4 mb-4" style="min-height: 1300px;"">
<div class="row p-2">
<div class="col-12">
<div class="row h-50">
<div class="col-12 justify-content-center">
<img class="img-fluid d-block bg-dark rounded-circle h-100 mx-auto shadow-lg" src="../public/uploads/{{ Auth::user()->image }}">
</div>
</div>
<div class="row" >
<div class="container-fluid">
<div class="card-body">
<form action="{{ route('profil.icone',['user' => Auth::user()]) }}" method="POST" enctype="multipart/form-data" >
@csrf
@method('PUT')
<div class="row mx-md-n5">
<div class="col">
<input id="avatar" type="file" class="form-control bg-white text-dark border-dark" name="avatar">
</div>
</div>
<div class="row p-3">
<div class="col text-center">
<button type="submit" class="btn btn-default btn-dark text-white" id="enregistre" name="enregistre">Changer de photo</button>
</div>
</div>
</form>
</div>
</div>
</div>
<hr class="bg-dark"></hr>
<div class="row">
<div class="card-body">
<form action="{{ route('profil.edit',['user' => Auth::user()]) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<h3 class="text-light mb-4 rounded bg-dark text-center">Informations du compte</h3>
<div class="pl-lg-6">
<div class="row">
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-nom" class="text-primary">Nom</label>
<input type="text" id="input-nom" class="form-control validate border-dark font-weight-bold text-dark" name="nom" value="{{ Auth::user()->name }}" disabled="disabled" >
</div>
</div>
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-prenom">Prenom</label>
<input type="text" id="input-prenom" class="form-control validate border-dark font-weight-bold text-dark" name="prenom" value="{{ Auth::user()->prenom }}" disabled="disabled" >
</div>
</div>
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-pseudo">Pseudo</label>
<input type="tel" id="input-pseudo" class="form-control validate border-dark font-weight-bold text-dark" name="pseudo" value="{{ Auth::user()->pseudo }}" disabled="disabled">
</div>
</div>
<div class="col-lg-6">
<div class="form-group">
<label class="text-dark" for="input-email">Adresse Email</label>
<input type="email" id="input-email" class="form-control validate border-dark font-weight-bold text-dark" name="mail" value="{{ Auth::user()->email }}" disabled="disabled">
</div>
</div>
<div class="col-lg-6">
<div class="form-group" id="zoneOldMDP">
<!-- zone qui va recevoir les champs pour l'ancien mdp -->
</div>
</div>
<div class="col-lg-6">
<div class="form-group" id="zoneNewMDP">
<!-- zone qui va recevoir les champs pour le nouveau mdp -->
</div>
</div>
<div class="col text-center" id="zoneEnregistrer">
<input class="btn btn-default btn-dark text-white" type="button" id="modifier" name="modifier" value="Modifier">
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
所以,我的问题是第一种形式 {{ route('profil.icone',['user' => Auth::user()]) }}.
带有 {{ route('profil.edit',['user' => Auth::user()]) }} 的第二种形式实际上运行良好并更新了我在数据库中的数据。点击"Modifier"按钮后,在JQuery中添加了第二个表单的提交按钮。
但我不明白为什么第一个不起作用,因为这两种形式非常相似,只是动作名称在改变。
class ProfilController extends Controller
{
public function index()
{
return view('profil');
}
public function store(ImagesRequest $request, User $user)
{
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
if($request->hasFile('avatar')){
$image = $request->file('avatar');
$filename = time() . '.' . $image->getClientOriginalExtension();
Image::make($image)->resize(300, 300)->save('/uploads/' . $filename );
$user->image = $filename;
$user->save();
}
return view('profil')->with ('alert', 'Votre photo a été mise à jour');
}
public function storeCompte(Request $request, User $user)
{
$nom = $request->nom;
$prenom = $request->prenom;
$pseudo = $request->pseudo;
$mail = $request->mail;
$user->name = $nom;
$user->prenom = $prenom;
$user->pseudo = $pseudo;
$user->email = $mail;
$user->save();
return back ()->with ('alert', 'Vos informations ont été mise à jour');
}
}
关于个人资料有我的路线;在 web.php 文件中。
Route::get('/profil', 'ProfilController@index')->name('profil')->middleware('auth');
//route pour mettre a jour sa photo de profil
Route::put('/profil/icone/{user}', 'ProfilController@store')->name('profil.icone');
//route pour editer son profil
Route::put('/profil/edit{user}', 'ProfilController@storeCompte')->name('profil.edit');
感谢您的帮助。
您有错别字您需要更正才能使其正常工作
更改此行
Route::put('/profil/edit{user}', 'ProfilController@storeCompte')->name('profil.edit');
到
Route::put('/profil/edit/{user}', 'ProfilController@storeCompte')->name('profil.edit');
然后在你的刀刃形态中
改变
action="{{ route('profil.icone',['user' => Auth::user()]) }}"
action="{{ route('profil.edit',['user' => Auth::user()]) }}"
到
action="{{ route('profil.icone',['user' => Auth::id()]) }}"
action="{{ route('profil.edit',['user' => Auth::id()]) }}"
所以,我重新启动了 MAMP,因此 Apache 服务器和路由正常工作,我现在遇到“无法将数据写入路径”但我想可以解决它。
感谢您的帮助。
实际上我的一个表单有问题,它允许用户更改他的个人资料图片。
当我提交文件时,此 URI 正在加载 localhost/projetT/public/profil/icone/2 但没有任何反应。如果我重新加载 URI,因为加载非常非常长,我会收到此错误: 此路由不支持 GET 方法。支持的方法:PUT。我需要帮助。
<div class="container bg-primary rounded mt-4 mb-4" style="min-height: 1300px;"">
<div class="row p-2">
<div class="col-12">
<div class="row h-50">
<div class="col-12 justify-content-center">
<img class="img-fluid d-block bg-dark rounded-circle h-100 mx-auto shadow-lg" src="../public/uploads/{{ Auth::user()->image }}">
</div>
</div>
<div class="row" >
<div class="container-fluid">
<div class="card-body">
<form action="{{ route('profil.icone',['user' => Auth::user()]) }}" method="POST" enctype="multipart/form-data" >
@csrf
@method('PUT')
<div class="row mx-md-n5">
<div class="col">
<input id="avatar" type="file" class="form-control bg-white text-dark border-dark" name="avatar">
</div>
</div>
<div class="row p-3">
<div class="col text-center">
<button type="submit" class="btn btn-default btn-dark text-white" id="enregistre" name="enregistre">Changer de photo</button>
</div>
</div>
</form>
</div>
</div>
</div>
<hr class="bg-dark"></hr>
<div class="row">
<div class="card-body">
<form action="{{ route('profil.edit',['user' => Auth::user()]) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<h3 class="text-light mb-4 rounded bg-dark text-center">Informations du compte</h3>
<div class="pl-lg-6">
<div class="row">
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-nom" class="text-primary">Nom</label>
<input type="text" id="input-nom" class="form-control validate border-dark font-weight-bold text-dark" name="nom" value="{{ Auth::user()->name }}" disabled="disabled" >
</div>
</div>
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-prenom">Prenom</label>
<input type="text" id="input-prenom" class="form-control validate border-dark font-weight-bold text-dark" name="prenom" value="{{ Auth::user()->prenom }}" disabled="disabled" >
</div>
</div>
<div class="col-lg-6">
<div class="form-group focused">
<label class="text-dark" for="input-pseudo">Pseudo</label>
<input type="tel" id="input-pseudo" class="form-control validate border-dark font-weight-bold text-dark" name="pseudo" value="{{ Auth::user()->pseudo }}" disabled="disabled">
</div>
</div>
<div class="col-lg-6">
<div class="form-group">
<label class="text-dark" for="input-email">Adresse Email</label>
<input type="email" id="input-email" class="form-control validate border-dark font-weight-bold text-dark" name="mail" value="{{ Auth::user()->email }}" disabled="disabled">
</div>
</div>
<div class="col-lg-6">
<div class="form-group" id="zoneOldMDP">
<!-- zone qui va recevoir les champs pour l'ancien mdp -->
</div>
</div>
<div class="col-lg-6">
<div class="form-group" id="zoneNewMDP">
<!-- zone qui va recevoir les champs pour le nouveau mdp -->
</div>
</div>
<div class="col text-center" id="zoneEnregistrer">
<input class="btn btn-default btn-dark text-white" type="button" id="modifier" name="modifier" value="Modifier">
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
所以,我的问题是第一种形式 {{ route('profil.icone',['user' => Auth::user()]) }}.
带有 {{ route('profil.edit',['user' => Auth::user()]) }} 的第二种形式实际上运行良好并更新了我在数据库中的数据。点击"Modifier"按钮后,在JQuery中添加了第二个表单的提交按钮。
但我不明白为什么第一个不起作用,因为这两种形式非常相似,只是动作名称在改变。
class ProfilController extends Controller
{
public function index()
{
return view('profil');
}
public function store(ImagesRequest $request, User $user)
{
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
if($request->hasFile('avatar')){
$image = $request->file('avatar');
$filename = time() . '.' . $image->getClientOriginalExtension();
Image::make($image)->resize(300, 300)->save('/uploads/' . $filename );
$user->image = $filename;
$user->save();
}
return view('profil')->with ('alert', 'Votre photo a été mise à jour');
}
public function storeCompte(Request $request, User $user)
{
$nom = $request->nom;
$prenom = $request->prenom;
$pseudo = $request->pseudo;
$mail = $request->mail;
$user->name = $nom;
$user->prenom = $prenom;
$user->pseudo = $pseudo;
$user->email = $mail;
$user->save();
return back ()->with ('alert', 'Vos informations ont été mise à jour');
}
}
关于个人资料有我的路线;在 web.php 文件中。
Route::get('/profil', 'ProfilController@index')->name('profil')->middleware('auth');
//route pour mettre a jour sa photo de profil
Route::put('/profil/icone/{user}', 'ProfilController@store')->name('profil.icone');
//route pour editer son profil
Route::put('/profil/edit{user}', 'ProfilController@storeCompte')->name('profil.edit');
感谢您的帮助。
您有错别字您需要更正才能使其正常工作
更改此行
Route::put('/profil/edit{user}', 'ProfilController@storeCompte')->name('profil.edit');
到
Route::put('/profil/edit/{user}', 'ProfilController@storeCompte')->name('profil.edit');
然后在你的刀刃形态中
改变
action="{{ route('profil.icone',['user' => Auth::user()]) }}"
action="{{ route('profil.edit',['user' => Auth::user()]) }}"
到
action="{{ route('profil.icone',['user' => Auth::id()]) }}"
action="{{ route('profil.edit',['user' => Auth::id()]) }}"
所以,我重新启动了 MAMP,因此 Apache 服务器和路由正常工作,我现在遇到“无法将数据写入路径”但我想可以解决它。 感谢您的帮助。