[英]Laravel named route not defined when it is
我正在做一个表格,用户可以在其中授权或拒绝askedRapport
。 这里是:
askRapportShow.blade.php
刀片视图:
<form action="{{route('authorize', $askedRapport->id)}}" method="POST">
<div class="form-group">
<textarea class="form-control" placeholder="Message"></textarea> <br>
<button type="submit" formaction="{{route('authorize', $askedRapport->id)}}" class="btn btn-success">Autoriser</button>
<button type="submit" formaction="{{route('refuse', $askedRapport->id)}}" class="btn btn-danger">Refuser</button>
</div>
</form>
在web.php
文件中的路由定义:
// RAPPORT ASKING MANAGEMENT
Route::post('askedRapport/{id}', 'manageAskedRapportController@authorize')->name('authorize');
Route::post('askedRapport/{id}', 'manageAskedRapportController@refuse')->name('refuse');
// RAPPORT ASKING MANAGEMENT--END
和控制器manageAskedRapportController.php
:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class manageAskedRapportController extends Controller
{
public function authorize($id){
return view('welcome');
}
public function refuse($id){
return view('unauthorized');
}
}
有人明白我为什么会遇到这个问题吗? 非常欢迎任何帮助
编辑
如果这有帮助,当我输入php artisan route:list
命令时,这就是我得到的:
ErrorException : Declaration of App\Http\Controllers\manageAskedRapportController::authorize($id) should be compatible with App\Http\Controllers\Controller::authorize($ability, $arguments = Array)
at C:\xampp\htdocs\monapp\app\Http\Controllers\manageAskedRapportController.php:17
13|
14| public function refuse($id){
15| return view('unauthorized');
16| }
> 17| }
18|
Exception trace:
1 Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Declaration of App\Http\Controllers\manageAskedRapportController::authorize($id) should be compatible with App\Http\Controllers\Controller::authorize($ability, $arguments = Array)", "C:\xampp\htdocs\monapp\app\Http\Controllers\manageAskedRapportController.php", ["C:\xampp\htdocs\monapp\vendor\composer/../../app\Http\Controllers\manageAskedRapportController.php"])
C:\xampp\htdocs\monapp\vendor\composer\ClassLoader.php:444
2 include()
C:\xampp\htdocs\monapp\vendor\composer\ClassLoader.php:444
Please use the argument -v to see more details.
更改路线并尝试。我认为第二条路线会覆盖第一条路线。因此,当您尝试使用第一条路线时,laravel 可能会显示route not found exception
。
Route::post('askedRapport/{id}/authorize', 'manageAskedRapportController@authorize')->name('authorize');
Route::post('askedRapport/{id}/refuse', 'manageAskedRapportController@refuse')->name('refuse');
表单动作路由定义为
<form action="{{route('authorize'), [$askedRapport->id] }}" method="POST">
我认为您的问题出在斜杠/
。
尝试像这样定义路由:
Route::post('/askedRapport/{id}', 'manageAskedRapportController@authorize')->name('authorize');
Route::post('/askedRapport/{id}', 'manageAskedRapportController@refuse')->name('refuse');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.