【问题标题】:How to foreach output XML data as string in blade view?如何在刀片视图中将输出 XML 数据作为字符串输出?
【发布时间】:2022-01-06 19:02:08
【问题描述】:

我正在尝试在 Laravel 中构建一个 web 应用程序,我遇到了循环遍历我的 XML 数据的问题, 当我尝试将 xml 数据输出为{{$caller}} 时,一切都很好,但它只显示第一个数据,现在我想用@foreach 循环槽,但我无法让它工作。它什么也不显示。

这是我的 XML(我从属性中获取数据)

<transport>
  <events2>
    <unasigned_event Code="81006" StartDate="2022-01-06T00:40:34.760" Customer="Directo" Content="Sveiki, Sanita! Pielikām atskaiti Fiziskām personām izmaksātās summas, tā ir tāda pati kā NIS, tikai atlase ierakstiem ir nevis pēc piegādātāja klases (=FOR), bet pēc piegādātāja kartiņas lauka Tips (=privāts). Paskatieties lūdzu, vai ar šo pietiek, vai varbūt jāliek vēl kāds atlases filtrs klāt vai vēl kāda informācija jāpievieno? Ar cieņu Marija Ovsjaņikova Klientu atbalsts support@directo.lv<mailto:support@directo.lv>, +371 677 044 91 [Logo Description automatically generate..." Subject="RE: Pārskats par nerezidentiem izmaksātajām summām/fiziskām personām izmaksātās summas"/>
  </events2>
</transport>

这是我的控制器

class ReadXMLController extends Controller
{
    public function read_xml()
    {
        #Function for parsing XML and displaying the 'xml' view

        $url = "samplesite.com/xml";
        $xml = simplexml_load_file($url);

        $z =  $xml['code'];

        if(empty($z)){
        $cUnasigned = ( $xml->events2->unasigned_event->count() );
        $cUnasigned_prev = ( $xml->events2->unasigned_event_prev->count() );
        $incall = ( $xml->events2->call_totals['incall'] );
        $outcall = ( $xml->events2->call_totals['outcall'] );
        $missedIn = ( $xml->events2->call_totals['missedIn'] );
        $missedOut = ( $xml->events2->call_totals['missedOut'] );
        $MasterToday = ( $xml->events2->call_totals['masterTicketsToday'] );
        $MasterTodayUnasigned = ( $xml->events2->call_totals['masterTicketsTodayUnasigned'] );
        $MasterTodayDone = ( $xml->events2->call_totals['masterTicketsTodayDone'] );
        $MasterTodayUndone = ( $xml->events2->call_totals['masterTicketsTodayUnDone'] );
        $MasterThisWeek = ( $xml->events2->call_totals['masterTicketsThisWeek'] );
        $MasterThisWeekUnasigned = ( $xml->events2->call_totals['masterTicketsThisWeekUnasigned'] );
        $MasterThisWeekDone = ( $xml->events2->call_totals['masterTicketsThisWeekDoneDone'] );
        $MasterThisWeekUndone = ( $xml->events2->call_totals['masterTicketsThisWeekUnDone'] );
        $caller = ($xml->events2->in_call_top['caller']);
        }
        return view('xml',
            compact(
            'url',
            'xml',
            'z',
            'cUnasigned',
            'cUnasigned_prev',
            'incall',
            'outcall',
            'missedIn',
            'missedOut',
            'MasterToday',
            'MasterTodayUnasigned',
            'MasterTodayDone',
            'MasterTodayUndone',
            'MasterThisWeek',
            'MasterThisWeekUnasigned',
            'MasterThisWeekDone',
            'MasterThisWeekUndone',
            'caller'
            ));
    }        
    public function index(){
            return view('xml');
        }
}

这是我的刀片视图

@extends('layouts.app')

    @section('content')
    <h1>Sekcija</h1>
        {{$cUnasigned}}
    
    @foreach ($caller as $call)
        {{$call}}   
    @endforeach
    
    @endsection

提前感谢您的帮助!

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:
    @section('content')
    <h1>Sekcija</h1>
        {{$customer}}
    <table>
        <tr>
            @foreach ($unasigned_events as $event)
            <td>
    
    {{ $event->attributes()->Customer }}
    <br>
    
    </td>
    @endforeach
    </tr>
    </table>
    @endsection
    

    这就是我最终的做法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2016-11-20
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      相关资源
      最近更新 更多