2016-08-14 20 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に失敗した場合でも、我々は背中に落下するnu​​ll値を持っているなるように:

<?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'] : ''; 
関連する問題