簡體   English   中英

Laravel 背包,在列中顯示地址(Json)

[英]Laravel Backpack, Show Address (Json) in Column

我想顯示地址 json 中的名稱字段(使用 algolia),我該怎么做?

我試過這個:

$this->crud->addColumn([
     'name' => "address",
     'label' => 'Address',
     'type' => 'array',
]);

但無法設法工作。 此外,它總是返回錯誤。

在預覽中,我也想顯示完整地址,但只有 json 返回。

在此處輸入圖片說明

提前致謝

設法使用自定義字段。

控制器:

 $this->crud->addColumn([
            'name' => 'address', //db field
            'label' => "Address", 
            'type' => 'customAddress' //name of custom created custom field
 ]);

在以下位置創建自定義字段:resources\\views\\vendor\\backpack\\crud\\columns 我將其命名為“customAddress.blade.php”

自定義字段:

{{-- customAddress--}} 
<?php $object  = (object) json_decode($entry['address'], true); ?>
<span><?php echo $object->value; ?></span>

你也可以用 foreach 來顯示,比如 $object->name、$object->country 等等...

希望這可以幫助某人。

編輯 1 - 背包 4.1 更新列

對於從 Backpack 4.0 遷移到 4.1 的每個人,您也應該更新此自定義列。

這是 Backpack v4.1 的更新代碼。 在 v4.1 中,列是否被轉義是有區別的。

我還添加了一個檢查,以防出現 JSON 解析錯誤。

{{-- customAddress--}}
@php
    $value = data_get($entry, $column['name']);
    $column['escaped'] = $column['escaped'] ?? false;

    json_decode($entry['address']);
    if(json_last_error() == JSON_ERROR_NONE){
        $object  = (object) json_decode($entry['address'], true);
        $value = $object->value;
    } else{
        $value = $entry['address'];
    }
@endphp

<span>
    <span class="d-inline-flex">
        @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_start')
        @if($column['escaped'])
            {{ $value }}
        @else
            {!! $value !!}
        @endif
        @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_end')
    </span>
</span>

希望這對從 Backpack 4.0 遷移的人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM