我想在我的注册页面上添加动态下拉列表,但我不知道该怎么做,因为我是 laravel 的新手。
我不知道从哪里开始。
我想在注册表单上放 2 个下拉列表
我们从表中获取值
首先是“组”组,包括:1.管理员 2.用户 3.访客
第二个是“部门”(禁用),如果第一个下拉菜单是管理员或访客,则第二个下拉菜单禁用。但如果我们选择用户,则部门下拉菜单启用并从部门表中获取数据。
我想在我的注册页面上添加动态下拉列表,但我不知道该怎么做,因为我是 laravel 的新手。
我不知道从哪里开始。
我想在注册表单上放 2 个下拉列表
我们从表中获取值
首先是“组”组,包括:1.管理员 2.用户 3.访客
第二个是“部门”(禁用),如果第一个下拉菜单是管理员或访客,则第二个下拉菜单禁用。但如果我们选择用户,则部门下拉菜单启用并从部门表中获取数据。
在我看来,最好的方法是创建一个控制器和一个模型。
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 上的免费入门视频。它也会向你展示这样的东西。
如果您遇到困难,请告诉我,我们可以扩展此答案。
尝试这个:
例如,您想在注册表中动态列出国家/地区列表。
在控制器中
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>