Php 在Laravel 5.2注册中添加动态下拉列表

Php 在Laravel 5.2注册中添加动态下拉列表,php,laravel,laravel-5,laravel-authorization,Php,Laravel,Laravel 5,Laravel Authorization,我想在我的注册页面上添加动态下拉列表 但我不知道怎么做,因为我是拉威尔的新手 我不知道从哪里开始 我想在登记表上写两个下拉列表 我们从表中获取值 首先是“集团” 小组成员包括: 1.管理员 2.使用者 3.客人 二是“部门”(残疾人) 如果第一个下拉列表是Administrator或Guest,则第二个下拉列表将禁用。 但如果选择用户,则部门下拉列表将启用并从部门表中获取数据。尝试以下操作: 例如,您希望在注册表中动态列出国家/地区 在控制器中 class YourController exte

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

我不知道从哪里开始

我想在登记表上写两个下拉列表

我们从表中获取值

首先是“集团” 小组成员包括: 1.管理员 2.使用者 3.客人

二是“部门”(残疾人) 如果第一个下拉列表是Administrator或Guest,则第二个下拉列表将禁用。 但如果选择用户,则部门下拉列表将启用并从部门表中获取数据。

尝试以下操作:

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

在控制器中

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>

选择国家
@foreach($countryList作为$key=>$country)
{!!$country['name']
@endforeach

我认为最好的方法是创建一个控制器和一个模型

php artisan make:controller YOUR_CONTROLLER_NAME_HERE

php artisan make:model YOUR_MODEL_NAME_HERE
这样做之后,应该非常简单

另一个不错的图书馆是

"illuminate/html": "5.*"
将其放在require{}部分的composer.json中

然后,您需要在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;
}
public function create() {
    $myModelList = $this->myModel->lists('name', 'id');
    return View::make('myController.create')->with(compact('myModelList'));
}
现在在调用函数(例如create())的控制器中添加如下内容

private $myModel;
__constructor(MyModel $myModelParameter) {
    $this->myModel = $myModelParameter;
}
public function create() {
    $myModelList = $this->myModel->lists('name', 'id');
    return View::make('myController.create')->with(compact('myModelList'));
}
现在终于转到html/模板文件。例如,在/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 addform.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>

{!!Form::label('myModel_id','myModel选择器:')
{!!Form::select('myModel_id',$mymodelslist,null,array('id'=>'myModel_id','class'=>'Form control input sm'))

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


如果您遇到问题,请告诉我,我们可以对此答案进行扩展。

提供您的代码以及您想要在下拉列表中显示的内容?您想要多少级的下拉列表?我已经编辑了我的问题@shuvrow,我想在iti中使用2级下拉列表。我不知道如何在AuthController中输入。很抱歉,但我对这一点很陌生。我认为你必须先学习laravel文档,然后实现代码。现在仍然这样做。但我不了解身份验证以及如何自定义它。但是,你知道,我正在尝试编写代码,这样我就可以显示我的代码了。谢谢@phpbtw,这段代码来自哪里
data code=“{!!$country['code']!!}”
我从控制器上看不到它,这对您来说是不必要的。我更新我的答案。