【问题标题】:Laravel 5 defining old input on selectLaravel 5 在选择时定义旧输入
【发布时间】:2015-12-11 12:13:18
【问题描述】:

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

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>

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

如何将其设为默认选项?

谢谢

更新 我正在尝试另一种方法。在我的编辑功能中,我会这样做

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>

似乎有同样的问题,客户端不是旧客户端作为默认选择的选项。

谢谢

【问题讨论】:

  • 嗯...如果您允许我问一下,您要编辑什么?您使用的旧(“客户”)指的是什么?你知道 Form::model 方法吗?有更简单的方法可以完成您想做的事情。让我看看我能不能帮你。顺便说一句,你可以用Client::lists('clientName','id') 代替Client::select('clientName', 'id')-&gt;get(),不是吗?
  • 我已经更新了原来的帖子,它使用了列表选项
  • 我不太明白你的新问题是什么,你能解释一下吗?
  • 当然,没问题。我再次更新了原来的帖子。谢谢
  • 您能检查一下返回给您的Input::old('clients') 的内容吗?在您的视图中放置{{ var_dump(Input::old('clients')) }},然后使用Input::old('clientName') 重试,因为您的选择是以这种方式命名的

标签: php select laravel-5


【解决方案1】:

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

以下应该有效:

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

【讨论】:

  • 您好,我也一直在与这个问题作斗争,但我在这里唯一改变的是添加 !!正如你所建议的,现在它可以工作了。是什么!!做什么?
  • 可能是您试图回显部分原始 html,在这种情况下,{!! !!} 是正确的 Blade 标记来转义和输出此类内容。
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2021-10-23
  • 2015-05-22
  • 2023-03-19
  • 2022-11-24
  • 2019-12-23
  • 2019-12-07
  • 1970-01-01
相关资源
最近更新 更多