【问题标题】:Laravel 5 | Select to variableLaravel 5 |选择变量
【发布时间】:2015-05-17 08:15:54
【问题描述】:

我创建了一个非常简单的表单,其中包含一些选择值,当您从列表中选择一个项目并点击提交时,它会转到导入文件模板以确认您的选择的另一个页面。出于某种原因,在下一页上,不会显示选择的项目名称,而是仅弹出选择值的行 ID。是否需要通过其他选项才能获取列表中显示的值?

这是我的create.blade.php

 <div class="form-group">
        {!! Form::label('candy_flavors', 'Candy Flavors:') !!}
        {!! Form::select('candy_flavors', array('' => 'Select Flavor') + $candy,  null, ['class' => 'form-control'])!!}
    </div>

这是我的CandyController.Php

public function create()
{
    $candy = Candy::all()->lists('name');
    return view('candy.create', compact ('candy'));
}

public function confirm(Requests\PrepareCandyRequest $request, Guard $auth)
        {
            $candytemplate = $this->compileCandyRequestTemplate($request->all(), $auth);
            return view('candy.confirm', compact('candytemplate'));
        }

public function compileCandyRequestTemplate($data, Guard $auth)
    {
        $data = $data + [
                'name' => $auth->user()->name,
                'email' => $auth->user()->email,
            ];
        return view()->file(app_path('Http/Templates/candytemplate.blade.php'), $data);
    }

这是我的candytemplate.blade.php

@extends ('master')
@section ('content')

This is your candy selection: {{ $candy }}

@endsection

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    所以我决定做的是从我的控制器进行调用,并通过标签两次。这成功了

    $accountexecutive=AccountExecutive::lists('flavor', 'flavor');
    return view('candy.create', compact ('flavors'));
    

    【讨论】:

      【解决方案2】:
       $candy=['apple'=>'apple','banana'=>'banana','mango'=>'mango'];
      

      现在使用

      <div class="form-group">
              {!! Form::label('candy_flavors', 'Candy Flavors:') !!}
              {!! Form::select('candy_flavors', array('' => 'Select Flavor') + $candy,  null, ['class' => 'form-control'])!!}
          </div>
      

      您必须指定键和值,否则选择将从 0 设置值

      【讨论】:

      • 感谢艺术家的回复。问题是列表是从数据库生成的,所以通过切换我手动定义的变量,我想避免这样做
      • @RomeNYRR 你可以像$arr=["a","b","c"]; $a=[]; foreach ($arr as $val) { $a[$val]=$val; }一样做
      【解决方案3】:

      确认后您可以致电:

      $request-&gt;get('candy_flavors')

      但是它会返回空白,因为它试图返回“值”,而不是选择框的“显示值”。在您的情况下,您正在传递一个空键数组。 array('' =&gt; 'Please select', '' =&gt; 'name 1', etc).

      表单构建器类使用数组的键来填充值。

      【讨论】:

        猜你喜欢
        • 2017-04-27
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 2018-08-17
        • 2016-04-08
        相关资源
        最近更新 更多