2016-08-14 5 views
2

donot가있는 경우 $category, $category은 정의되지 않습니다. 그래서 그것이 존재하는 경우에만 $category을 전달할 수 있습니다.정의되지 않은 변수가 존재하지 않으면

public function receive(Request $request) 
     { 
      if($request->ajax()) 
      { 
       $id=$request->id; 
       if($id) 
       { 
        $receive=User::where(['id'=>$id])->first(); 
        if($receive->category->name) 
        { 
         $category=$receive->category->name; 
        } 

        echo json_encode(array('status' => TRUE, 'receive'=>$receive,'category'=>$category)); die; 
    } 
+0

예, 알고 있습니다. 뭔가에 대해 질문이 있으십니까? 하나를 편집하십시오. –

답변

1

간단하게 $category을 null 값으로 초기화 할 수 있습니다.

<?php 


    public function receive(Request $request) { 
     $category = null;  //<== INITIALIZE THE $category VARIABLE TO NULL. 
     if ($request->ajax()) { 
      if ($id = $request->id) { 
       $receive = User::where(['id' => $id])->first(); 
       if (isset($receive->category->name)) { 
        $category = $receive->category->name; 
       } 

       die(json_encode([ 
        'status' => TRUE, 
        'receive' => $receive, 
        'category' => $category 
       ])); 
      } 
     } 
    } 

양자 택일 ..... 당신의 conditional logicoverride $category에 실패 할 경우에도, 우리는 다시 가을에 null 값을 가질 것이다 그래야 :

<?php 

    public function receive(Request $request) { 
     // CREATE A NEW ARRAY WITH KEYS CORRESPONDING TO RESPONSE KEY 
     // THEN INITIALIZE EACH ELEMENT OF THE ARRAY TO NULL OR FALSE 
     $response = [ 
      'status' => false, 
      'receive' => null, 
      'category' => null    
     ]; 
     if ($request->ajax()) { 
      if ($id = $request->id) { 
       $receive = User::where(['id' => $id])->first(); 
       if (isset($receive->category->name)) { 
        $category = $receive->category->name; 
       } 
       // OVERRIDE THE VALUES OF THE $response ARRAY. 
       // IF $receive OR $category ARE SET, WE USE THEIR VALUES 
       // OTHERWISE WE SET THE VALUES TO NULL 
       $response['status']  = true; 
       $response['receive'] = isset($receive)?$receive:null; 
       $response['category'] = isset($category)?$category:null; 
      } 
     }  
     // SINCE WE HAVE ACCESS TO $response, WE CAN NOW FINALLY 
     // JSON_ENCODE IT & DIE-OUT THE RESULT... 
     die(json_encode($response)); 
    } 
+0

그래서, 먼저 모든 vatiables를 null로 초기화해야합니다. 예 : $ 수신, $ 카테고리 그리고 내가 통과해야하는 모든 것? – Steve

1

...이 시도

$category = isset($_GET['category']) ? $_GET['category'] : ''; 
관련 문제