2016-09-07 4 views
1

私RESTapiは、JSON文字列モデルからデータベース出力の変更とlaravel 5.2

{"chat":[{"id":100,"chat_id":38,"created_at":"2016-09-07 08:48:17","updated_at":"2016-09-07 08:48:17","messageContent":"Hi there","sender":"client"},{"id":101,"chat_id":38,"created_at":"2016-09-07 08:48:29","updated_at":"2016-09-07 08:48:29","messageContent":"hello sir","sender":"admin"},{"id":102,"chat_id":38,"created_at":"2016-09-07 09:14:24","updated_at":"2016-09-07 09:14:24","messageContent":"test","sender":"client"},{"id":103,"chat_id":38,"created_at":"2016-09-07 09:16:06","updated_at":"2016-09-07 09:16:06","messageContent":"test","sender":"client"}],"currentChatId":38,"senderName":"Client name"} 

お知らせ差出人欄以下出力され表示に渡します。これらはすべてdbから来ています。今私はこれをチェックし、送信者の名前の代わりに送信者の名前を表示するアルゴリズムを書いています。

私はこの問題に関して何かお伝えしていますか?ここで

は、コントローラ機能が

public function getAllChat(Request $request) 
{ 
    // $chatList = chatMessage::where(); 
    $clientId = $request->session()->get('userId'); 

    //current chat id7 
    $currentChatId = $request->session()->get('currentChatId'); 
    //find who sent it admin/client 
    $chatMessageList = chatMessage::where('chat_id',$currentChatId)->get(); 
    //sender 
    foreach($chatMessageList as $cht) 
    { 
     //find out sender 
     $sender = $cht->sender; 
     if($sender=="client") 
     { 
      $chtP = chatParticipants::find($currentChatId)->first(); 
      $clientId = $chtP->client_id; 
      //find client name 
      $client = Client::find($clientId); 
      $ch->sender = $client->name; 



     } 
     elseif($sender=="admin") 
     { 
      $chtP = chatParticipants::find($currentChatId)->first(); 
      $adminId = $chtP->admin_id; 
      //find client name 
      $admin = Admin::find($clientId); 
      $name = $admin->name; 
      $ch->sender = $admin->name; 
     } 
    } 

    return response()->json([ 
     "chat"=> $chatMessageList, 
     "currentChatId" => $currentChatId, 
     "senderName"=>$name 
     ]); 
} 

エラーです:空の値から、デフォルトのオブジェクトを作成する空の値

+0

どのラインでエラーが表示されますか?あなたの問い合わせの1つがオブジェクトを返さない場合は、find()への呼び出しがオブジェクトを返すようにしてください。 –

+0

@ jedrzej.kurylo $ ch-> sender = $ client-> name; –

答えて

1

あなたはどこにも定義されて$ CH変数を持っていない - 私はあなたがを使用したいと思います代わりに$ cht変数。

$ch->sender = $client->name; 

$cht->sender = $client->name; 

$ch->sender = $admin->name; 

に置き換え

$cht->sender = $admin->name; 
+0

haha​​はいちょうどそれも考え出した。 :D –

+0

クール:)あなたはその質問に答えてマークできますか? –

+0

はい私はそれをしました。 –

0

それはタイプミスでした。 $ cht-> sender = $ name;

の代わりに$ ch-> sender = $ name;

関連する問題