3

我想在我的注册页面上添加动态下拉列表,但我不知道该怎么做,因为我是 laravel 的新手。

我不知道从哪里开始。

我想在注册表单上放 2 个下拉列表

我们从表中获取值

首先是“组”组,包括:1.管理员 2.用户 3.访客

第二个是“部门”(禁用),如果第一个下拉菜单是管理员或访客,则第二个下拉菜单禁用。但如果我们选择用户,则部门下拉菜单启用并从部门表中获取数据。

4

2 回答 2

2

在我看来,最好的方法是创建一个控制器和一个模型。

php artisan make:controller YOUR_CONTROLLER_NAME_HERE

php artisan make:model YOUR_MODEL_NAME_HERE

完成之后,它应该非常简单。

另一个不错的图书馆是

"illuminate/html": "5.*"

把它放在你的 composer.json 的 require {} 部分。

然后您需要在 config/app.php 的 providers 部分下添加服务提供者,如下所示:

Illuminate\Html\HtmlServiceProvider

作为最后一部分,在别名部分下的 config/app.php 中输入这两行:

'Form'=> 'Illuminate\Html\FormFacade',
'HTML'=> 'Illuminate\Html\HtmlFacade'

现在在顶部的控制器中包含您的模型和视图外观,如下所示

use App\MyModel;
use Illuminate\Support\Facades\View;

在您的构造函数中,您需要像这样将模型注入到您的控制器中。

private $myModel;
__constructor(MyModel $myModelParameter) {
    $this->myModel = $myModelParameter;
}

现在在您的调用函数(例如 create())中的控制器中添加类似这样的内容。

public function create() {
    $myModelList = $this->myModel->lists('name', 'id');
    return View::make('myController.create')->with(compact('myModelList'));
}

现在终于到了 html/template 文件。在 /resources/views/myController/create.blade.php 例如添加

    @extends('app')

    @section('content')

      {!! Form::open(['url' => 'myController/create', 'method' => 'POST']) !!}
        @include('myController.partials.form', ['submitButtonText' => 'Create myController Item'])
      {!! Form::close() !!}

@endsection

现在在你的一个名为 /resources/view/myController/partials 的新文件夹中添加 form.blade.php

<div class="form-group">
  {!! Form::label('myModel_id', 'MyModel Selector :') !!}
  {!! Form::select('myModel_id', $myModelList, null, array('id' => 'myModel_id', 'class' => 'form-control input-sm')) !!}
</div>

<div style="clear:both;"><br /></div>

<div class="form-actions">
  <div class="form-group">
    {!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
  </div>
</div>

这可能看起来像很多步骤,但它使一切都变得非常干净,尤其是当您的项目开始变大时。这也适用于您的 edit.blade.php 您当然只需创建一个 edit.blade.php 文件并包含该表单。由于您使用的是模型,因此它将检测模型的正确设置并以相同的方式提取值。当然,您可以做更复杂的事情,但我建议您观看 laracasts 上的免费入门视频。它也会向你展示这样的东西。

如果您遇到困难,请告诉我,我们可以扩展此答案。

于 2016-03-23T06:34:35.133 回答
0

尝试这个:

例如,您想在注册表中动态列出国家/地区列表。

在控制器中

class YourController extends Controller {

   protected $countryArray;

   public function __construct() {
       $this->countryList = ['' => 'Select Country'] + Country::lists('name', 'id')->all();
   }

   public function create() {

       $countryList = $this->countryList;
       return view('frontend.registration', compact('countryList'));
   }
}

在模板中

<select id="country_id" name="country_id" class="form-control">
    <option value="">Select Country</option>
    @foreach ($countryList as $key => $country)
    <option value="{!! $country['id'] !!}"  !!}>{!! $country['name'] !!}</option>
    @endforeach
</select>
于 2016-03-23T05:42:35.927 回答