无法使用Blade动态加载下拉列表

时间:2015-04-01 08:42:02

标签: php laravel laravel-5 blade illuminate-container

我是Laravel和Blade的新手,并且一直在尝试使用Illuminate/Html制作视图。

我有一张名为service_locations(location_id, location_area)的表。

使用上表我试图填充下面的下拉列表:

<div class="form-group">
{!! Form::label('location', 'Location:') !!}
{!! Form::select('location', array(

    @foreach($locations as $local)
       '{{ $local->location_id }}' => '{{ $local->location_area }}', 
    @endforeach

), null, ['class' => 'form-control']) !!}
</div>

但是当我尝试这样做时,我在倒数第二行(), null, ['class' => 'form-control']) !!})中收到以下错误:

syntax error, unexpected '<', expecting ')'

我无法弄清楚上述代码的问题。

修改1 这是我的控制器的样子:

<?php namespace App\Http\Controllers;

use App\service_location;
use App\service_type;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

    public function index()
    {
        $locations = service_location::all();
        $services = service_type::all();

        return view('home.index', compact('locations','services'));
    }
}

2 个答案:

答案 0 :(得分:1)

你不能这样使用刀片,

但你可以用

获得相同的结果
{!! Form::select('location', $locations->lists('id','location_area'), null, ['class' => 'form-control']); !!}

答案 1 :(得分:0)

试试这个..

在控制器中:

$services = service_type::lists('location_area', 'location_id');

return view('home.index', compact('locations','services'));

在你的刀片中:

 {{ Form::select('location',$locations,null, array('class'=> 'form-control'))}}