я хочу добавить динамический выпадающий список на моей странице регистрации
но я не знаю, как это сделать, потому что я новичок в 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 в разделе поставщиков, например:
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>