Laravel формы с моделями - PullRequest
       7

Laravel формы с моделями

0 голосов
/ 13 марта 2019

У меня есть этот код для моей формы, и он хорошо работает:

    <div class="form-group">

        <select class="form-control" id="exampleSelect1">
        <option>Assign</option>
        @foreach ($projects as $project)
        <option>{{ $project->name }} </option>

        @endforeach
        </select>
    </div>

но я пытаюсь сделать это с помощью контактной формы:

        <div class="form-group">
            {!! Form::label('name', 'Project') !!}
            {!! Form::select (@theforeach with the values :c ) !!}}
        </div>

Я использую использование App\Http\Requests\ContactFormRequest;, и я искал способ сделать это, но есть несколько примеров в Google.

Ответы [ 3 ]

1 голос
/ 13 марта 2019

Форма является частью библиотеки HTML Laravel Collective, вы можете найти документацию здесь , в частности, вы ищете документацию Select :

echo Form::select('size', ['L' => 'Large', 'S' => 'Small']);

У вас есть коллекция Project моделей, каждая из которых имеет name и (предположительно) id, которые необходимо преобразовать в массив ключ -> значение для метода select, которыйвы можете сделать это, используя pluck :

{!! Form::select('project', $projects->pluck('name', 'id')) !!}

Тогда в вашем контроллере вы сможете найти проект, который был выбран с помощью find, например:

Project::find($request->project);
0 голосов
/ 13 марта 2019

Если вы хотите, чтобы выбранные вами параметры работали, вам нужно правильно их назвать,

С контроллера,

 // Example : This is for single view page

 $list_of_options = Products::pluck('name','id');
 return view('your_view_name',compact('list_of_options')); 

// Example : If you want select dropdown in all page ( within the controller views)   then,

use Illuminate\Support\Facades\View;

public function __construct(){
   View::share('list_of_options',Products::pluck('name','id'));  
}

Теперь в блейде,

  {{ dd($list_of_options); }} // Check if the values are comming in proper formate

  {!! Form::select('name_of_the_select', $list_of_options, null ,[
         'class' => 'form-control',
         'id'    => 'name_of_the_select'
      ]);
   !!}

Вот кнопка с <i> или <span> внутри: -

{{ Form::button(
    '<span class="fa fa-play fa-1x"></span>',
        [
            'class'=>'btn btn-info',
            'type'=>'button'
        ])
    }}

Из вашего вопроса ( ОБНОВЛЕНО )

<div class="form-group">
{!! Form::label('exampleSelect1', 'Project') !!}
{!! Form::select('projects', $projects, null ,[
             'class'       => 'form-control',
             'id'          => 'exampleSelect1',
             'placeholder' => 'Please select project'

          ]);
       !!}
    </div>

Я надеюсь, что этопомогает.:)

0 голосов
/ 13 марта 2019

Попробуйте это

<div class="form-group">
    {!! Form::label('project', 'Project') !!}
    {!! Form::select ('project', $projects->pluck('name')) !!}} 
</div>

См. Документы https://laravel.com/docs/4.2/html#drop-down-lists

<div class="form-group">
    {!! Form::label('project', 'Project') !!}
    {!! Form::select ('project', $projects->pluck('name', 'id')) !!}}
</div>
...