Laravel Voyager: пользовательский вид для добавления и редактирования с картой Google - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу создать пользовательский вид редактирования-добавления в Laravel Voyager: строка с двумя столбцами.Во 2-й колонке хочу поставить гугл карту.

Вопросы:

  • Как мне отфильтровать, если поле является картой?
  • Когда я получаю карту, как мне взять данные из Voyagerсделать это?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Я только что узнал, как это сделать! Вот ответ: В Voyager каждый вход, который вы можете использовать в формах, уже определен (также вы можете определить пользовательские входы).В моем случае мне понадобился ввод формы координат, который показывает карту Google и позволяет вам поставить маркер, сохраняя широту и долготу. Вот как вы включаете его в пользовательскую форму:

@php
   $dataTypeRows = $dataType->{(isset($dataTypeContent->id) ? 'editRows' : 'addRows' )};
   $row = $dataTypeRows->where('field', 'location')->first();
   $options = $row->details;
@endphp
@include('voyager::formfields.coordinates')

Итак, что все это значит:

Первая строка ($dataTypeRows = $dataType->{(isset($dataTypeContent->id) ? 'editRows' : 'addRows' )};), в основном, говорит, редактируете ли вы или добавляете (то есть, нового пользователя).

Во второй строке ($row = $dataTypeRows->where('field', 'location')->first();) вы получаете всеСтрока данных для «местоположения» конкретной модели."location" - это имя, которое я использовал в моем случае, там вы должны заменить имя, которое вы указали в вашем BREAD.

В третьей строке ($options = $row->details;),вы получаете детали (пользовательский код json, который вы можете поместить в каждое поле в BREAD).

Делая это, вы просто устанавливаете данные, необходимые в поле формы «координаты», поэтому вам нужно включить формуполе (карта Google) сейчас.Вы делаете это в этой последней строке: @include('voyager::formfields.coordinates').

Наконец, со всеми html, это может выглядеть так:

    <div class="row">
        <div class="col-md-12">
            <div class="panel panel-bordered">
                <div class="panel-body">
                    <label for="location"> Ubicación </label>
                    @php
                        $dataTypeRows = $dataType->{(isset($dataTypeContent->id) ? 'editRows' : 'addRows' )};
                        $row = $dataTypeRows->where('field', 'location')->first();
                        $options = $row->details;
                    @endphp
                    @include('voyager::formfields.coordinates')
                </div>
            </div>
        </div>
    </div>

Custom coordinates form field

0 голосов
/ 28 декабря 2018

Я думаю, что не уверен, вы должны сделать отдельную папку в resources \ views \ vendor \ voyager \

и скопировать из vendor \ tcg \ voyager \ resources \ views \ bread \ edit-add.blade.php в вашу новую папку, таким образом, когда вы вызываете представление редактирования для этой модели, вы получаете свое собственное, в папке ресурсов.

, затем вы настраиваете свое действие и добавляете то, что вы хотите отобразить в блейде,добавив к модели результат, как в

$ model-> mymap = $ creation_map;

надеюсь, это поможет

...