2016-08-13 4 views
0

컨트롤러 :루프 JSON을 통해 배열

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

class welcomeController extends Controller 
{ 
    public function welcome() { 
     $cards = json_decode('[{ 
      "id": 1, 
      "name ": "a", 
      "class": "class1" 
     }, { 
      "id": 2, 
      "name ": "b", 
      "class": "class2" 
     }]'); 

     return view('welcome', compact('cards')); 
    } 
} 

브라우저에

@foreach($cards as $card) 
    <p>{{ $card->name }} </p> 
    <p>{{ $card->class }} </p> 
@endforeach 

오류 메시지 welcome.blade.php enter image description here

난 PHP larav에 익숙하지 않다. 엘자. 이것에 대한 적절한 해결책을 찾도록 도와주세요. 고마워요.

답변

1

안녕하세요 당신은 당신의 코드에서 확인 모든 것을 가지고있는 문제는 JSON 변수에 $ 카드 = json_decode ('[{ "ID": 1, "이름": "A", "클래스" " class1 " }, { "id ": 2, "name ":"b ", "class ":"class2 " }]);

키 "이름"

는`) (오류가

+0

큰 관찰, 고마워. 그게 효과가 있었어. – Kartik

0

스크린 샷에서 템플릿으로 전송되는 'cards'값은 코드 스 니펫이 생성하는 객체 배열이 아닌 배열 배열입니다.

json_decode()의 두 번째 인수는 연관 배열로 변환할지 여부를 지정하는 것으로 기본값은 not입니다.

+0

오는 이유보기에 당신의 "이름"으로 액세스 트링하는 나는 또한 json_decode'에'두 번째 인수로 TRUE '를 시도 있도록 내부 공간을 가지고 . 그러나 내가 원하는대로 길을 가리지는 않습니다. – Kartik

+0

사물의 외형에서, 스크린 샷은 당신이 진실을 전달할 때였으며, 코드는없는 것입니다. 내가 말할 수있는 것부터, 코드는 설명에서 주어진대로 작동해야합니다! – jedifans

1

은 JSON 배열은 다차원하고 welcome.blade.php 배열의 수준에서 존재하지 않는 이름과 클래스의 변수를 호출하기 때문에 오류가 일어나고

return view('welcome')->with("cards",$cards); 
+0

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) 정말 게시물의 품질을 향상시키는 데 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. 코드와 설명의 가독성을 떨어 뜨리기 때문에 주석을 설명하는 코드를 사용하지 마십시오! – FrankerZ

+0

ohk 나는 그것을 remmeber하고 조언을 주셔서 감사합니다 내가 '@foreach ($ $ 카드와 같은 카드)

{{$ 카드 -> ID}}

endforeach' @를 사용하는 경우 –

0

으로 시도 . 당신의 welcome.blade.php에서

는 말을 당신의 foreach 문을 변경 :

@foreach($cards[0] as $card) 
    <p>{{ $card->name }} </p> 
    <p>{{ $card->class }} </p> 
@endforeach 

내가 그 궤도에 당신을 얻을 전망이다. 희망이 도움이됩니다!

+0

그것은 아래에 나와 있습니다 @FrankerZ 위의 결과 : '1 2' 그래서 두 번 반복하지만 값을 얻지는 못합니다. – Kartik