将变量从Controller传递给View

时间:2015-03-18 00:31:01

标签: laravel-5

我正在尝试将数组从Controller传递到类似的视图:

控制器

public function newUser()
    {
        $company = Company::all();
        $list = array();
        foreach ($company as $companies)
        {
            $list[] = '<option value="'.$companies->id.'">'. $companies->name.'</option>';
        }

        return view('auth.register')->with($list);
    }

查看

<select class="form-control" name="company">
    {{$list}}
</select>

导致Undefined variable: list

我也尝试了return view('auth.register')->with('companies', $list);哪个会产生htmlentities() expects parameter 1 to be string, array given

我没有使用表单构建器,我自己创建了所有HTML。

2 个答案:

答案 0 :(得分:0)

我通过这样做解决了这个问题。

控制器

 public function newUser()
    {
        $company = Company::all();
        $list = array();
        foreach ($company as $companies)
        {
            $list[$companies->id] = $companies->name;
        }

        return view('auth.register')->with('list', $list);
    }

查看

<select class="form-control" name="company">
    @foreach($list as $key=> $value)
        <option value="{{ $key }}">{{ $value }}</option>
    @endforeach
</select>

答案 1 :(得分:0)

这样做很容易:

<强>控制器:

public function newUser()
{
    $companies = Company::lists('name', 'id');

    return view('auth.register', compact('companies'));
}

查看:

{!! Form::select('company', $companies, null) !!}

非常干净,非常简单。