我有一个简单的功能可以接受朋友的请求:
before_all do
ENV["MATTERMOST_WEBHOOK_URL"] = 'https://my_new_webooh_from_mattermost'
end
工作正常,但是如果其他用户发送了朋友的请求,他将发送通知。我想在接受请求后将其标记为已读,但是我遇到了问题。我不知道如何进行查询构建以检查此通知。我知道我可以创建一个新功能,并且像attirute使用notify id一样,但是我网站的用户不仅可以在通知列表中接受请求,而且可以在用户个人资料中接受请求。
我考虑过从“通知”表中读取信息表单“数据”列,但是我遇到了问题。我尝试了一些查询建筑物:
before_all
或
def send_message_to_mattermost(options)
unless ENV['MATTERMOST_WEBHOOK_URL'].nil? || ENV['MATTERMOST_WEBHOOK_URL'].empty?
mattermost(
pretext: options[:pretext],
message: options[:msg],
default_payloads: options[:default_payloads],
username: 'Fastlane',
icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
payload: {},
attachment_properties: {
title: options[:title],
thumb_url: options[:thumb_url],
fields: [{
title: 'Version',
value: options[:version_number],
short: true
},
{
title: 'Build Number',
value: options[:build_number],
short: true
},
{
title: 'Built by',
value: 'Jenkins',
short: true
}]
},
success: options[:success]
)
end
end
但是没有用。 “ 12”是发件人的ID,
表结构是普通的通知结构:
public function acceptFriend($id){
$user = User::find($id);
$sender = Auth::user();
$sender->acceptFriendRequest($user);
return redirect()->back();
}
数据列将包含一个数组,例如:
$hello = auth()->user()->unreadNotifications->where('notifiable_id', Auth::user()->id)
->where('data->arr->id', '12')->first();
答案 0 :(得分:0)
您将需要与LIKE查询等效的查询生成器。
->where('data', '%12%')
将生成SQL:data = '%12%'
不返回结果。
->where('data', 'like', '%12%')
将生成应该起作用的SQL:data like '%12%'
。