Laravel Voyager:使用Google Map自定义添加编辑视图

时间:2018-12-11 00:48:22

标签: php laravel-5 voyager

我想在Laravel Voyager中创建一个自定义的添加编辑视图:一行包含两列。在第二列中,我想放置一个Google地图。

问题是:

  • 如果该字段是地图,应该如何过滤?
  • 获取地图时,如何从航海家获取数据以进行渲染?

2 个答案:

答案 0 :(得分:0)

我认为不确定,您必须在resources \ views \ vendor \ voyager \

中创建单独的文件夹

并从vendor \ tcg \ voyager \ resources \ views \ bread \ edit-add.blade.php复制 到您的新文件夹, 这样,当您调用该模型的编辑视图时,可以在资源文件夹中获得自定义视图。

然后,您可以自定义操作并通过添加到模型结果中来添加要显示在刀片​​中的内容

$ model-> mymap = $ created_map;

希望这会有所帮助

答案 1 :(得分:0)

我刚刚找到了解决方法!,这是答案: 在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();)中,您将获得特定模型“位置”的所有行数据。 “位置”是我在本例中使用的名称,您必须在其中替换为您在BREAD中设置的名称。

在第三行$options = $row->details;)中,您将获得详细信息(可以在BREAD的每个字段中输入的自定义json代码)。

这样做,您只需在表单字段“坐标”中设置所需的数据,因此您现在必须包括表单字段(谷歌地图)。您可以在以下最后一行中完成此操作:@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