Форма — Передача массива из контроллера для просмотра — Laravel

Я действительно новичок в Laravel, и я не уверен, что знаю, что делаю. У меня есть форма в моем основном виде. Я передаю ввод в контроллер и хочу, чтобы данные отображались в другом представлении. Я не могу получить массив из контроллера во второй вид. Я продолжаю получать 500 hphp_invoke. Здесь я передаю массив из контроллера в view2.

public function formSubmit()
{
if (Input::post())
{
$name = Input::get('name');
$age = Input::get('age');
$things = array($name, $age);
return View::make('view2', array('things'=>$things));
}
}

view1.blade.php

{{ Form::open(array('action' => 'controller@formSubmit')) }}
<p>{{ Form::label('Name') }}
{{ $name = Form::text('name') }}</p>
<p>{{ Form::label('Age') }}
{{ $age = Form::text('age') }}</p>
<p>{{ Form::submit('Submit') }}</p>
{{ Form::close() }}

Мой файл view2.php действительно прост.

<?php
echo $name;
echo $age;
?>

Тогда в rout.php

Route::get('/', function()
{
return View::make('view1');
});
Route::post('view2', 'controller@formSubmit');

Почему это не работает?

3

Решение

пытаться с()

$data = array(
'name'  => $name,
'age' => $age
);

return View::make('view2')->with($data);

на просмотр получите: —
echo $ data [‘name’];
echo $ data [‘age’];

или же

return View::make('view2')->with(array('name' =>$name, 'age' => $age));

получить на виду: —

echo $name;
echo $age;

Для более Следуйте Вот

5

Другие решения

Вам необходимо использовать:

return View::make('view2')->with(['name' => $name, 'age' => $age]);

использовать

$name а также $age в вашем шаблоне

3

поскольку $things уже array поэтому вы можете использовать следующий подход, но сделать массив ассоциативным:

$name = Input::get('name');
$age = Input::get('age');
$things = array('name' => $name, 'age' => $age);
return View::make('view2', $things);

Таким образом, вы можете получить доступ $name а также $age в вашем view, Также вы можете попробовать это:

return View::make('view2')->with('name', $name)->with('age', $age);
2

В вашем контроллере используйте

return View::make('view2')->with($things);

По вашему мнению, теперь вы можете получить доступ к каждому атрибуту, используя

@foreach($things as $thing)
<p>{{ $thing->name }}</p>
<p>{{ $thing->age }}</p>
@endforeach
2