Php 修改模型的数据库输出,并将其传递给视图laravel 5.2
我的RESTapi正在输出以下json字符串Php 修改模型的数据库输出,并将其传递给视图laravel 5.2,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我的RESTapi正在输出以下json字符串 {"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-0
{"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"}
请注意sender列。这些都来自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
]);
}
错误:从空值创建默认对象空值您没有在任何地方定义$ch变量-我猜您想改用$cht变量 替换
$ch->sender = $client->name;
与
及
与
那是个打字错误。
$cht->sender=$name
而不是
$ch->sender=$name 您在哪一行得到错误?其中一个查询不返回对象,请确保对find()的所有调用都返回一个对象object@jedrzej.kurylo$ch->sender=$client->name;酷:)然后你能把问题标记为已回答吗?
$cht->sender = $client->name;
$ch->sender = $admin->name;
$cht->sender = $admin->name;