表单 - 从控制器传递数组到视图 - PHP - Laravel

时间:2014-10-08 07:13:21

标签: php arrays laravel view controller

我对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;
?>

然后在routes.php中

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

为什么这不起作用?

4 个答案:

答案 0 :(得分:5)

使用()

尝试
$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;

了解更多关注here

答案 1 :(得分:3)

您需要使用:

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

使用

模板中的

$name$age

答案 2 :(得分:2)

由于$things已经是array,因此您可以使用以下方法,但将数组关联起来:

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

因此,您可以在$name中访问$ageview。另外,你可以试试这个:

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

答案 3 :(得分:2)

在您的控制器中,使用

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

在您看来,您现在可以使用

访问每个属性
@foreach($things as $thing)
    <p>{{ $thing->name }}</p>
    <p>{{ $thing->age }}</p>
@endforeach