Comparte:
No me muestra los registros
Hola a todos a ver si me podeis ayudar tengo una ruta creada en el archivo web.php
Route::get('posts/{$post},[PostController::class, 'show'])->name('posts.show');
La funcion de mi PostController.php
public function show(Post $post){
return $post;
}
Y en mi pagina index le creo el vinculo
<a href="{{route('posts.show',$post)}}>{{$post->name}}</a>
El nombre del post me sale(eso significa que la variable llega) pero cuando le doy al nombre que es un vinculo en la url del navegador me aparece blog.test/posts/100 que es el numero del post, pero en pantalla en vez de aparecer los registros de este me pone EXTRAVIADO 404.
Espero me podais ayudar, gracias
Route::get('posts/{$post},[PostController::class, 'show'])->name('posts.show');
La funcion de mi PostController.php
public function show(Post $post){
return $post;
}
Y en mi pagina index le creo el vinculo
<a href="{{route('posts.show',$post)}}>{{$post->name}}</a>
El nombre del post me sale(eso significa que la variable llega) pero cuando le doy al nombre que es un vinculo en la url del navegador me aparece blog.test/posts/100 que es el numero del post, pero en pantalla en vez de aparecer los registros de este me pone EXTRAVIADO 404.
Espero me podais ayudar, gracias
JC SO (494 xp)
gssa (998 xp)
xisten un par de cuestiones a tener en cuenta en tu situacion que pueden aludir a tu problema, para empezar tu ruta:
desde mi percepcion tienes un error ya que el parametro que recibes en tu url tiene el simbolo de $ que antecede al nombre de tu variable, Ademas la cuestion a tener en cuenta es como definas en tu modelo \App\Models\Post el binding o lo que menciona JC SO para tener urls amigables utilizando la funcion getRouteKeyName() ejemplo
otra cosa a tener en cuenta es en tu controller ya que tu metodo debe tener el mismo nombre que defines en tu ruta, para el ejemplo que tienes seria algo asi donde
donde $post es el nombre que definiste en tu ruta '/post/{post}'