我想在我的注册页面上添加动态下拉列表 但我不知道怎么做,因为我是laravel的新人。
我不知道从哪里开始。
我想在登记表上加上2下拉列表
我们从表中获取值
首先是“小组” 小组包括: 1.管理员 2.用户 3.嘉宾
第二是“部门”(禁用) 如果第一个下拉列表是管理员或访客,则第二个下拉列表禁用。 但是如果我们选择用户,那么部门下拉启用并从部门表中获取数据。
答案 0 :(得分: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中添加服务提供者,如下所示:
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例如add
@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上观看免费的首发视频。它会向你显示这样的东西。
如果你遇到困难,请告诉我,我们可以扩展这个答案。
答案 1 :(得分: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>