php - route - return view with parameters laravel 5
Laravel 4: ¿cómo escribir el controlador anidado correcto para el recurso anidado? (1)
En Laravel 4, deseo crear un conjunto de recursos relajantes de la siguiente manera:
http://localhost/posts/1/comments
http://localhost/posts/1/comments/1
http://localhost/posts/1/comments/1/edit
...
Así que creé dos controladores: PostsController y CommentsController (en la misma capa), y las rutas se escriben de la siguiente manera:
Route::resource(''posts'', ''PostsController'');
Route::resource(''posts.comments'', ''CommentsController'');
También creé un enlace en /views/comments/index.blade.php que se refiere a las rutas: posts.comments.create
{{ link_to_route(''posts.comments.create'', ''Add new comment'') }}
Aquí está el problema que conocí:
Cuando visito http://localhost/posts/1/comments
, la página arroja MissingMandatoryParametersException , que indica:
Faltan algunos parámetros obligatorios ("publicaciones") para generar una URL para la ruta "posts.comments.create".
¿Cómo puedo solucionar el problema y cómo puedo saber si la solución también se aplica a los métodos de creación y edición en CommentsController?
p.ej
public function index()
{
$tasks = $this->comment->all();
return View::make(''comments.index'', compact(''comments''));
}
public function create()
{
return View::make(''comments.create'');
}
public function show($post_id,$comment_id)
{
$comment = $this->comment->findOrFail($comment_id);
return View::make(''comments.show'', compact(''comment''));
}
Estoy usando controladores anidados en dos proyectos, los amo. El problema parece estar en su controlador y enlace de ruta.
En CommentsController, falta $ post_id. Haz algo como esto:
public function create($post_id)
{
return View::make(''comments.create'')
->with(''post_id'', $post_id);
}
Al crear enlaces a un controlador anidado, se deben proporcionar las ID de todos los antepasados. En este caso, falta el $ post_id. Es posible que deba ponerlo a disposición de su vista si aún no lo está.
{{ HTML::linkRoute(''posts.comments.create'', ''Add new comment'', $post_id) }}