【问题标题】:Laravel creating a form select with default value setLaravel 创建一个带有默认值集的表单选择
【发布时间】:2013-04-18 17:31:28
【问题描述】:

控制器:

$employee = Staff::where('staff_id', '=', $id)->where('user_role', '=','Employee')->first();
$emp_loc = $employee->locations()->pivot()->only('loc_id');
$locations_list = Location::lists('address1', 'loc_id'); //get list of locations

查看:

<!--location -->
<div class="control-group">
<label class="control-label">Location</label>
<div class="controls">
@if(isset($emp_loc))
{{ Form::select('location', $locations_list, $emp_loc) }}
@else
{{ Form::select('location', $locations_list) }}
@endif
</div>
</div>

第三个参数是选择框的默认值,但它总是从第一个值开始。

源代码:

<div class="control-group">
<label class="control-label">Location</label>
<div class="controls">
<select name="location"><option value="1">Bethel</option><option value="2">Brooklyn</option><option value="3">Germantown</option><option value="4">Memphis</option><option value="5">Brooklyn</option></select>        </div>
</div>

没有设置默认值?

【问题讨论】:

  • $emp_loc 包含什么?它应该包含要选择的选项的值,例如12
  • 在渲染视图之前,您是否在控制器中包含 ->with('emp_loc', $emp_loc) ?你能发布你的控制器的代码吗?
  • 请在控制器中显示创建视图的行,或将变量传递给它 - 那里可能有问题。我还建议你var_dump/echo$emp_loc,这样你就可以确认它确实是一个数字,它可以设置但null
  • 1. $emp_loc 包含一个数字,如“1”或“2”,基于我做了一个 die 和 dump 的 id,它们都是正确的。 2.所有值都传递给视图 3.我对所有变量都做了一个 dd 并且我在视图中使用它们并且它没有返回错误所以变量已经成功传递了。
  • 虽然它有可能将字符串与整数进行比较,但我建议对 $emp 和 $locations_list 执行 var_dump() 以确保 id 相同。

标签: php forms laravel


【解决方案1】:

可能是数据库配置问题。

返回迁移文件并确保您的外键设置正确。这就是我要正确设置它们的方法:

Schema::create('pivot', function(Blueprint $table) {
  $table->increments('id');
  $table->unsignedInteger('loc_id');
  $table->foreign('loc_id')
   ->references('id')->on('location_list');
  .....
}

Schema::create('location_list', function(Blueprint $table) {
  $table->increments('id');
  .....
}

此外,请注意在 Firefox 中,selected 值无法正确显示。要解决此问题,请将下拉列表更改为(在 Blade 中):

Form::select('location', $locations_list, $emp_loc, array('autocomplete'=>'off'))

最后一部分是 Firefox 的一个奇怪行为

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 2020-11-02
    • 2016-12-13
    • 1970-01-01
    • 2019-10-03
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多