Laravel 5在select上定义旧输入

时间:2015-12-11 12:13:19

标签: php select laravel-5

在我的控制器中,我将一个客户列表传递给视图

public function edit(Project $project)
{
    $clients = Client::select('clientName', 'id')->get();

    return View::make('projects.edit', compact('project', 'clients'));
}

现在在我看来,我目前正在做这个

<div class="form-group">
    {!! Form::label('clientName', 'Client Name:', array('class' => 'col-sm-5 control-label blue')) !!}
    <div class="col-sm-7">
        <select class="clientName" name="clientName">
            @foreach($clients as $client)
                @if (Input::old('clients') == $client->id)
                <option value="{{ $client->id }}" selected="selected">{{ $client->clientName }}</option>
                @else
                <option value="{{ $client->id }}">{{ $client->clientName }}</option>
                @endif
            @endforeach
        </select>
    </div>
</div>

我要做的是将默认选择选项设置为旧输入。目前,select显示所有客户端,但旧值不是默认值。

我如何将其作为默认选项?

由于

更新 我正在尝试另一种方式。在我的编辑功能中我做

public function edit(Project $project)
{
    $clients = Client::lists('clientName', 'id');

    return View::make('projects.edit', compact('project', 'clients'));
}

然后在我看来我做了

<div class="form-group">
    {!! Form::label('clientName', 'Client Name:', array('class' => 'col-sm-5 control-label blue')) !!}
    <div class="col-sm-7">
        {!! Form::select('clientName', $clients, Input::old('clients'), ['class' => 'clientName']) !!}
    </div>
</div>

虽然看起来有同样的问题,但客户端不是旧客户端作为默认选择选项。

由于

1 个答案:

答案 0 :(得分:1)

您的选择名称为clientName,但您的旧输入正在查找名称为clients的字段。

以下内容应该有效:

<option value="{{ $client->id }}" {!! old('clientName', $project->client->id) == $client->id ? 'selected="selected"' : '' !!}>{{ $client->clientName }}</option>