¿Cómo pasar datos para ver en Laravel?

Resuelto Sam Pettersson asked hace 54 años • 16 respuestas

Estoy pasando datos a mi vista Blade y return View::make('blog', $posts);en mi vista Blade estoy intentando ejecutar y @foreach ($posts as $post)termino con un error que dice que $postsno está definido.

Mi pregunta es ¿cómo se $postsllamaría la matriz?

Sam Pettersson avatar Jan 01 '70 08:01 Sam Pettersson
Aceptado

Puede pasar datos a la vista utilizando el withmétodo.

return View::make('blog')->with('posts', $posts);
Mostafa Elgaafary avatar Aug 20 '2013 17:08 Mostafa Elgaafary

A partir de Laravel 5, el View::make()método de fachada de la respuesta aceptada de 2013 ha quedado obsoleto. Pasar datos a la vista ahora se realiza usando la view()función auxiliar como esta:

return view("blog", ["posts"=>$posts]);

O lo mismo:

return view("blog", compact("posts"));

Esto se puede combinar con el with()método si se desea:

return view("blog", compact("posts"))->with("message", "Comment posted");

La documentación está disponible aquí .

miken32 avatar Jun 01 '2016 04:06 miken32

Si desea pasar solo una variable para ver, puede usar

En controlador

return view('blog')->withTitle('Laravel Magic method.');

En vista

<div>
  Post title is {{$title}}.
</div>

Si desea pasar múltiples variables para ver, puede usar

En controlador

return view('blog')->withTitle('Laravel magic method')->withAuthor('Mister Tandon');

En vista

<div>
   Post title is {{$title}}.Author Name is {{$author}}
</div>
mistertandon avatar Jan 24 '2017 04:01 mistertandon

También puede pasar una matriz como segundo argumento después del nombre de la plantilla de vista, en lugar de encadenar un montón de ->with()métodos.

return View::make('blog', array('posts' => $posts));

O, si estás usando PHP 5.4 o superior, puedes usar la sintaxis de matriz "corta" mucho más agradable:

return View::make('blog', ['posts' => $posts]);

Esto es útil si desea calcular la matriz en otro lugar. Por ejemplo, si tiene un montón de variables que cada controlador necesita pasar a la vista y desea combinar esto con una matriz de variables que sea única para cada controlador en particular (usando array_merge, por ejemplo), puede calcular $variables(que contiene ¡una matriz!):

return View::make('blog', $variables);

(Hice esto sin pensarlo: avíseme si apareció un error de sintaxis...)

iconoclast avatar May 21 '2014 15:05 iconoclast