"The GET method is not supported for this route. Supported methods: PUT."
Publicado por Cristina (43 intervenciones) el 13/08/2019 19:16:22
Hola, ante todo disculpa, soy muy nueva en esto y al igual la cosa es un poco tonta.
Estoy creando un proyecto para el cual cloné de git-hub el blog : milon / laravel-blog. Todo bien, funciona genial, pero está en inglés y mi sitio ha de poder traducirse al castellano y catalán. Instalé el paquete dimsav/laravel-translatable y mcamara/laravel-localization. En el archivo de rutas se han de poner todas las rutas dentro de:
Y aquí viene el problema, si las rutas están fuera del grupo de rutas para la traducción, funciona correctamente, pero al ponerlo dentro, por ejemplo la función que publica los posts me arroja el error:
"The GET method is not supported for this route. Supported methods: PUT."
El código que realiza la petición es este:
Tampoco entiendo como si no está dentro de un form puede realizar la acción... pues intenté ponerlo dentro de form y añadir la recomendación de los inputs hidden con el _method:put que aconsejan en la docu de laravel... pero no lo conseguí.
Agradezco la ayuda, llevo mucho rato intentando encontrar la solución.
Saludoooos!!!
Cristina
Estoy creando un proyecto para el cual cloné de git-hub el blog : milon / laravel-blog. Todo bien, funciona genial, pero está en inglés y mi sitio ha de poder traducirse al castellano y catalán. Instalé el paquete dimsav/laravel-translatable y mcamara/laravel-localization. En el archivo de rutas se han de poner todas las rutas dentro de:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
], function()
{
Route::get('/', 'BlogController@index');
Route::get('/posts/{post}', 'BlogController@post');
Route::post('/posts/{post}/comment', 'BlogController@comment')->middleware('auth');
Auth::routes();
Route::get('/home', 'HomeController@index');
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function() {
Route::resource('/posts', 'PostController');
Route::put('/posts/{post}/publish', 'PostController@publish')->middleware('admin');
Route::resource('/categories', 'CategoryController', ['except' => ['show']]);
Route::resource('/tags', 'TagController', ['except' => ['show']]);
Route::resource('/comments', 'CommentController', ['only' => ['index', 'destroy']]);
Route::resource('/users', 'UserController', ['middleware' => 'admin', 'only' => ['index', 'destroy']]);
});
});
Y aquí viene el problema, si las rutas están fuera del grupo de rutas para la traducción, funciona correctamente, pero al ponerlo dentro, por ejemplo la función que publica los posts me arroja el error:
"The GET method is not supported for this route. Supported methods: PUT."
El código que realiza la petición es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h2>
Posts
<a href="{{ url('admin/posts/create') }}" class="btn btn-default pull-right">{!! trans ('web.Create_New') !!}</a>
</h2>
</div>
<div class="panel-body">
<table class="table">
<thead>
<tr>
<th>{!! trans ('web.title') !!}</th>
<th>{!! trans ('web.body') !!}</th>
<th>{!! trans ('web.author') !!}</th>
<th>{!! trans ('web.Category') !!}</th>
<th>{!! trans ('web.Tags') !!}</th>
<th>{!! trans ('web.Published') !!}</th>
<th>{!! trans ('web.Action') !!}</th>
</tr>
</thead>
<tbody>
@forelse ($posts as $post)
<tr>
<td>{{ $post->title }}</td>
<td>{{\Illuminate\Support\Str::limit($post->body, 60) }}</td>
<td>{{ $post->user->name }}</td>
<td>{{ $post->category->name }}</td>
<td>{{ $post->tags->implode('name', ', ') }}</td>
<td>{{ $post->published }}</td>
<td>
@if (Auth::user()->is_admin)
@php
if($post->published == trans ('web.yes')) {
$label = trans ('web.Draft');
} else {
$label = trans ('web.publish');
}
@endphp
<a href="{{ url("/admin/posts/{$post->id}/publish") }}" data-method="PUT" data-token="{{ csrf_token() }}" data-confirm="{{trans ('web.are_you_sure')}}" class="btn btn-xs btn-warning">{{ $label }}</a>
@endif
<a href="{{ url("/admin/posts/{$post->id}") }}" class="btn btn-xs btn-success">{!! trans ('web.show') !!}</a>
<a href="{{ url("/admin/posts/{$post->id}/edit") }}" class="btn btn-xs btn-info">{!! trans ('web.edit') !!}</a>
<a href="{{ url("/admin/posts/{$post->id}") }}" data-method="DELETE" data-token="{{ csrf_token() }}" data-confirm="{{trans ('web.are_you_sure')}}" class="btn btn-xs btn-danger">{!! trans ('web.delete') !!}</a>
</td>
</tr>
@empty
<tr>
<td colspan="5">{!! trans ('web.No_post_available') !!}</td>
</tr>
@endforelse
</tbody>
</table>
{!! $posts->links() !!}
</div>
</div>
</div>
</div>
</div>
@endsection
Tampoco entiendo como si no está dentro de un form puede realizar la acción... pues intenté ponerlo dentro de form y añadir la recomendación de los inputs hidden con el _method:put que aconsejan en la docu de laravel... pero no lo conseguí.
Agradezco la ayuda, llevo mucho rato intentando encontrar la solución.
Saludoooos!!!
Cristina
Valora esta pregunta


0