具有资源的 Controller 中的自定义函数无法正常工作

Custom function in Controller with resource wont work

我在 RoomsController 中创建了自己的自定义功能

public function join($id){ 
    return $id; 
}

然后我想将变量传递给它,它说 MethodNotAllowedHttpException 我的表格看起来像这样

{{Form::open(['action'=>  ['RoomsController@join', $room->id], 'method' => 'POST' ])}} 
{{Form::submit('Join', ['class' => 'btn btn-danger'])}}
{{Form::close()}}

Also have these routes


Route::get('/','PagesController@index');
Route::get('/about', 'PagesController@about');
Route::get('/services', 'PagesController@services');
Route::get('/register', 'PagesController@register');
Route::get('/logout', 'PagesController@logout'); 
Route::get('/rooms/join', 'RoomsController@join'); 
Route::resource('posts','PostsController');
Route::resource('rooms','RoomsController');
Auth::routes();

Route::get('/dashboard', 'DashboardController@index');

我试过很多不同的方法,但我不知道为什么它不起作用。所有更新编辑销毁资源功能都在工作。感谢您的帮助:)

您正在提交 POST 请求,但路由需要 GET 请求。如果您将路线更改为 Route::post('/rooms/join', 'RoomsController@join');,它应该可以工作

将方法改为post,将路由放在资源路由下面

Route::resource('rooms','RoomsController');
Route::post('/rooms/join', 'RoomsController@join');