2014-10-08 204 views
3

我真的很陌生,并且我不确定自己在做什么。我的主要观点有一个表格。我将输入传递给控制器​​,并且我希望数据在另一个视图中显示。我似乎无法从控制器到第二个视图的数组。我一直得到500 hphp_invoke。这是我将数组从控制器传递到view2的地方。表单 - 从控制器传递数组到视图 - PHP - Laravel

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' => '[email protected]')) }} 
    <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', '[email protected]'); 

为什么不是这方面的工作?

回答

3

您需要使用:

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

在模板中使用

$name$age

4

尝试有()

$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

+0

感谢您的帮助每个属性。这似乎并没有工作。这可能是我拥有的路线吗?它的Route :: post('view2','controller @ formSubmit');那是错的吗? – porcupine92 2014-10-08 07:32:54

+0

我添加了更多我的代码。没有什么我改变似乎工作。你看到我有什么不对吗? – porcupine92 2014-10-08 07:53:05

2

由于$things已经是一个array所以您可以使用下面的方法,但是使数组关联:

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

因此,您可以在您的view中访问$name$age。此外,你可以试试这个:

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 
相关问题