如何将数组中的值从控制器传递到视图

时间:2018-04-27 06:59:00

标签: php laravel

我是Laravel的新手,我正在尝试将我从<form>收到的控制器中的值传递给视图,并在文本框中显示相同的值。虽然,我已经想出如何使用方法链接做同样的事情,但我想使用数组传递值并在视图中的文本框中显示相同的内容。

我期望做什么?

controller中,而不是方法链:

return view('showvalues')->with(['name'=>$name, 'address'=>$address]);

到目前为止的代码,

controller

 public function showvalues(Request $request)
    {
        $name=$request->get('name');
        $address=$request->get('address');
        $pass=$request->get('password');
        $arr=array("$name","$address","$pass");

        return view('showvalues')->with('name',$name)->with('address',$address);
    }

showvalues视图中显示值:

<html>
    <head>

    </head>
    <body>
        <h1>
            Show Value Page.
        </h1>
        <input type="text" name="n1" value="<?php echo $name;?>" /><br>
        <input type="text" name="n3" value="<?php echo $address;?>" />
    </body>
</html>

4 个答案:

答案 0 :(得分:3)

使用compact方法作为view的第二个参数:

public function showvalues(Request $request)
{
    $name = $request->get('name');
    $address = $request->get('address');
    $pass = $request->get('password');

    return view('showvalues', compact('name', 'address', 'pass'));
}

变量将在您的视图文件中以相同名称提供,您可以将它们显示为:

{{ $name }}
{{ $address }}
{{ $pass }}

答案 1 :(得分:1)

将数组作为第二个参数传递给view()

return view('showvalues', ['name'=>$name, 'address'=>$address]);
是的,你试过打开Laravel's manual吗?

答案 2 :(得分:1)

您需要使用form函数返回所有compact输入。

<强>控制器

public function showvalues(Request $request)
{
    $form = $request->all();

    return view('showvalues', compact('form'));
}

查看

{{ $form['name'] }}
{{ $form['address'] }}

答案 3 :(得分:0)

怎么样

return view('showvalues')->withName($name);

或者

return view('showvalues')->with(['name'=>$name]);