获取每条消息的用户个人资料照片
Get user profile photo for each message
我需要在聊天室中显示每个用户的独特照片。 LaravelJetstream
正在获取用户消息
{{ message.message}}
最初我有,但后来意识到它只能获取当前登录用户的照片。
:src="$page.props.user.profile_photo_url
我需要定义一个 has one 关系并调用如下内容:
获取与用户账号对应的用户id
{{ message.user_id}}
然后从用户 table 列获取个人资料照片位置,但我似乎无法正常工作
{{ user->where('id','=',message.user_id)->value(photo_location) }}
你的代码的最后一行不正确,但我认为它不需要修复,因为在查询数据时你所做的是一个非常糟糕的做法。
假设您在一个页面中显示 50 条消息。在这种情况下,您必须进行 50 次额外查询才能获取用户照片。这会降低您应用的性能。这就是为什么您需要将用户数据附加到消息中的原因。您只需要在控制器中添加以下内容即可。
$messages = Message::with('user')->...->get();
如果用户 table 有个人资料照片的外键,您的查询应该是:
$messages = Message::with('user.relation_name')->...->get();
在blade中,您将拥有您需要的所有用户数据,并像
一样使用它
{{ message->user->profile_photo_url }}
要完成这项工作,您需要 one-to-many User 和 Message 模型之间的关系,我假设您已经知道了。如果你不检查文档。很简单。
********** /编辑/
关系
聊天消息模型
public function user(){
return $this->hasOne('App\Models\ChatRoom','id','user_id');
}
消息控制器
$messages= ChatMessage::where('chat_room_id','=',$roomId)
->with('user')
->orderBy('created_at','DESC')
->get();
然后在 vue 中尝试测试并获取消息的用户 ID,但不起作用
{{ message.user.id }}
我需要在聊天室中显示每个用户的独特照片。 LaravelJetstream
正在获取用户消息
{{ message.message}}
最初我有,但后来意识到它只能获取当前登录用户的照片。
:src="$page.props.user.profile_photo_url
我需要定义一个 has one 关系并调用如下内容:
获取与用户账号对应的用户id
{{ message.user_id}}
然后从用户 table 列获取个人资料照片位置,但我似乎无法正常工作
{{ user->where('id','=',message.user_id)->value(photo_location) }}
你的代码的最后一行不正确,但我认为它不需要修复,因为在查询数据时你所做的是一个非常糟糕的做法。
假设您在一个页面中显示 50 条消息。在这种情况下,您必须进行 50 次额外查询才能获取用户照片。这会降低您应用的性能。这就是为什么您需要将用户数据附加到消息中的原因。您只需要在控制器中添加以下内容即可。
$messages = Message::with('user')->...->get();
如果用户 table 有个人资料照片的外键,您的查询应该是:
$messages = Message::with('user.relation_name')->...->get();
在blade中,您将拥有您需要的所有用户数据,并像
一样使用它{{ message->user->profile_photo_url }}
要完成这项工作,您需要 one-to-many User 和 Message 模型之间的关系,我假设您已经知道了。如果你不检查文档。很简单。
********** /编辑/
关系
聊天消息模型
public function user(){
return $this->hasOne('App\Models\ChatRoom','id','user_id');
}
消息控制器
$messages= ChatMessage::where('chat_room_id','=',$roomId)
->with('user')
->orderBy('created_at','DESC')
->get();
然后在 vue 中尝试测试并获取消息的用户 ID,但不起作用
{{ message.user.id }}