2016-03-21 27 views
0

ここでは、ユーザーが自分のサイトに登録した後、パス( 'user.show')にリダイレクトする機能があります。ユーザーはURL内の別のユーザーを検索することもできます。ユーザーが存在する( 'user.show')は、要求されたユーザーの情報を提供します。しかし、ユーザーが無効な名前を検索すると、現在ログインしているユーザー(検索しているユーザー)に情報を提供します。非オブジェクトのプロパティを取得しようとしています

public function show($user) 
    { 
     // 
     $indicator=is_numeric($user)?'user_id':'username'; 
     $info=User::where($indicator,'=',$user)->get()->first(); 
     if($info){ 
      echo 'bal'; 
      $data=array('info'=>$info); 
      return View::make('user.show')->with('info',$data); 
     }else{ 
      echo "this user doesn't exist"; 

      $info=User::where($indicator,'=', Auth::user()->$indicator)->get()->first(); 

      $data=array('info'=>$info); 
      return View::make('user.show')->with('info',$data); 
     } 
    } 
0:error.The誤差は次の行

$info=User::where($indicator,'=', Auth::user()->$indicator)->get()->first(); 

を表示()ユーザ制御装置における方法であります

+0

をお試しください:user() - > $ indicator'? –

+0

Auth :: user() - > $インジケータが有効なオブジェクトではないようです... Auth :: user() - > $インジケータをエコーするとエラーが表示されます –

+0

'dd($ indicator);戻る。 –

答えて

0

このような何か試してみてください:この代わりに

if(Auth::user()){ 
    // User is authenticated 
    $info = User::where($indicator,'=', Auth::user()->$indicator)->get()->first(); 
}else{ 
    // User is not authenticated 
} 

を::

$info=User::where($indicator,'=', Auth::user()->$indicator)->get()->first(); 
+0

検索したユーザーが存在しない場合、ログインしたユーザーが返されます。 –

0

あなたは `認証を呼び出すようにしようとしているとき` $のindicator`リターンを何

if(Auth::check()){ 
    $info = User::where($indicator,'=', Auth::user()->$indicator)->first(); 
}else{ 
    // Other code goes hr 
} 
+0

dd(Auth :: user())はNULLです。何をすべきですか? –

+0

どこにdd(Auth :: user())を配置しましたか? if条件の中にありますか? – oseintow

+0

他の条件の下で問題のマイコード –

関連する問題