У меня есть проблема с неопределенным индексом для моего блэйда в laravel 5.6 - PullRequest
0 голосов
/ 25 мая 2018

У меня проблема с неопределенным индексом для моего блэйда в laravel 5.6.Я должен запустить свой URL localhost: 8000 / test, когда получаю сообщение об ошибке Неопределенный индекс: Домены .Если передать в URL некоторые значения, такие как localhost: 8000 / test? Tld = test & sld = info, он работает отлично.пожалуйста, предложите любое решение.

Мой код страницы просмотра

@foreach($result['Domains']['Domain'] as $key => $value)
      @if($key == 'Name')
      <b>{{$value}}</b> - 
      @endif
      @if($key == "RRPText")
      <b>{{$value}}</b>
      @endif
      @endforeach
      @foreach($result['Domains']['Domain']['Prices'] as $key => $value)
      @if($key == "Registration")
      <b>{{$value}}</b>
      @endif 
      @endforeach

Мой код контроллера

$sld = $request['sld'];
        $tld = $request['tld'];
        $response = file_get_contents('https://reseller.enom.com/interface.asp?command=check&sld='. $sld .'&tld='. $tld .'&uid=resellid&pw=resellpw&responsetype=xml&version=2&includeprice=1&includeproperties=1&includeeap=1');  
        $data = simplexml_load_string($response);
        $configdata   = json_encode($data);
        $final_data = json_decode($configdata,true);

Мой вывод вызова API

{"interface-response":
{"Domains":
{"Domain":
{"Name":"decksys.info","RRPCode":"210","RRPText":"Domain available","IsPremium":"False","IsPlatinum":"False","IsEAP":"False","Prices":{"Currency":"","Registration":"12.48","Renewal":"12.48","Restore":"250.00","Transfer":"12.48","ExpectedCustomerSuppliedPrice":null}}},"Command":"CHECK","APIType":"API.NET","Language":"eng","ErrCount":"0","ResponseCount":"0","MinPeriod":"1","MaxPeriod":"10","Server":"sjl0vwapi08","Site":"eNom","IsLockable":null,"IsRealTimeTLD":null,"TimeDifference":"+0.00","ExecTime":"0.553","Done":"true","TrackingKey":"a1c38f08-5042-4139-a525-302d987a2b39","RequestDateTime":"5/25/2018 4:23:31 AM","debug":null}}

Пожалуйста, предложите любое решение

1 Ответ

0 голосов
/ 25 мая 2018

Это говорит о неопределенном индексе, это означает, что ключ для $result['Domains']['Domain'] или $result['Domains']['Domain']['Prices'] не существует в массиве.

попробуйте вывести вашу переменную $results, используя dd($results) перед foreach, и выобнаружит, что здесь нет ключа.

Вы можете проверить с помощью isset(), чтобы убедиться, что индекс существует в этом массиве

@if(isset($result['Domains']['Domain'])) 
    @foreach($result['Domains']['Domain'] as $key => $value)
      @if($key == 'Name')
        <b>{{$value}}</b> - 
      @endif
      @if($key == "RRPText")
        <b>{{$value}}</b>
      @endif
    @endforeach
@endif
@if(isset($result['Domains']['Domain']['Prices']))
    @foreach($result['Domains']['Domain']['Prices'] as $key => $value)
      @if($key == "Registration")
        <b>{{$value}}</b>
      @endif 
    @endforeach
@endif

Подробнее о массивах PHP можно узнать здесь: https://www.w3schools.com/php/php_arrays.asp

...