【问题标题】:Form - Passing array from controller to view - PHP - Laravel表单 - 将数组从控制器传递到视图 - PHP - Laravel
【发布时间】:2014-12-02 18:30:59
【问题描述】:

我真的是 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');

为什么这不起作用?

【问题讨论】:

    标签: php arrays laravel view controller


    【解决方案1】:

    在你的控制器中,使用

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

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

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

    【讨论】:

      【解决方案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);
      

      【讨论】:

        【解决方案3】:

        试试 with()

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

        视图得到:- 回声 $data['name']; 回声 $data['age'];

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

        开始观看:-

        echo $name;
        echo $age;
        

        更多关注here

        【讨论】:

        • 感谢您的帮助。但这似乎不起作用。这可能是我的路线吗?这是 Route::post('view2','controller@formSubmit');有错吗?
        • 我添加了更多代码。我所做的任何更改似乎都不起作用。你觉得我的东西还有什么问题吗?
        【解决方案4】:

        你需要使用:

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

        使用

        $name$age 在您的模板中

        【讨论】:

          猜你喜欢
          • 2018-06-11
          • 2016-10-11
          • 2016-01-21
          • 2017-05-25
          • 2017-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多