php - plantillas - Laravel-Pase más de una variable para ver
laravel foreach index (6)
Tengo este sitio y una de sus páginas crea una lista simple de personas de la base de datos. Necesito agregar una persona específica a una variable a la que pueda acceder.
¿Cómo modifico el return $view->with(''persons'', $persons);
línea para pasar también la variable $ ms a la vista?
function view($view)
{
$ms = Person::where(''name'', ''Foo Bar'');
$persons = Person::order_by(''list_order'', ''ASC'')->get();
return $view->with(''persons'', $persons);
}
Usa compactos
function view($view)
{
$ms = Person::where(''name'', ''='', ''Foo Bar'')->first();
$persons = Person::order_by(''list_order'', ''ASC'')->get();
return View::make(''users'', compact(''ms'',''persons''));
}
Así es como lo haces:
function view($view)
{
$ms = Person::where(''name'', ''='', ''Foo Bar'')->first();
$persons = Person::order_by(''list_order'', ''ASC'')->get();
return $view->with(''persons'', $persons)->with(''ms'', $ms);
}
También puedes usar compact() :
function view($view)
{
$ms = Person::where(''name'', ''='', ''Foo Bar'')->first();
$persons = Person::order_by(''list_order'', ''ASC'')->get();
return $view->with(compact(''persons'', ''ms''));
}
O hazlo en una línea:
function view($view)
{
return $view
->with(''ms'', Person::where(''name'', ''='', ''Foo Bar'')->first())
->with(''persons'', Person::order_by(''list_order'', ''ASC'')->get());
}
O incluso enviarlo como una matriz:
function view($view)
{
$ms = Person::where(''name'', ''='', ''Foo Bar'')->first();
$persons = Person::order_by(''list_order'', ''ASC'')->get();
return $view->with(''data'', [''ms'' => $ms, ''persons'' => $persons]));
}
Pero, en este caso, tendrías que acceder a ellos de esta manera:
{{ $data[''ms''] }}
Encontré un problema similar, pero si no necesariamente desea devolver una vista con el archivo de vista, puede hacer esto:
return $view->with(compact(''myVar1'', ''myVar2'', ..... , ''myLastVar''));
Para pasar múltiples datos de matriz desde el controlador a la vista, pruébelo. Está funcionando. En este ejemplo, paso los detalles del asunto de una tabla y los detalles del asunto contienen la identificación de la categoría, los detalles como el nombre si la identificación de categoría se obtiene de otra categoría de tabla.
$category = Category::all();
$category = Category::pluck(''name'', ''id'');
$item = Subject::find($id);
return View::make(''subject.edit'')->with(array(''item''=>$item, ''category''=>$category));
Pasar múltiples variables a una vista de Laravel
//Passing variable to view using compact method
$var1=value1;
$var2=value2;
$var3=value3;
return view(''viewName'', compact(''var1'',''var2'',''var3''));
//Passing variable to view using with Method
return view(''viewName'')->with([''var1''=>value1,''var2''=>value2,''var3''=>''value3'']);
//Passing variable to view using Associative Array
return view(''viewName'', [''var1''=>value1,''var2''=>value2,''var3''=>value3]);
Lea aquí sobre Pasar datos a vistas en Laravel
Simplemente pásalo como una matriz:
$data = [
''name'' => ''Raphael'',
''age'' => 22,
''email'' => ''[email protected]''
];
return View::make(''user'')->with($data);
O encadenarlos, como dijo @ Antonio.