php - 不能让它在我的代码上工作我不知道为什么,我收到以下错误:下面
问题描述
我正在尝试 Edujugon 推送通知 laravel;所有配置都是正确的。我的推送通知代码低于我得到的错误
哎呀,看起来像出事了。
SendPushNotification.php 第 402 行中的 FatalThrowableError:找不到类“Edujugon\PushNotification\PushNotification”
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\ProviderDevice;
use App\ProviderService;
use Exception;
use Log;
use Setting;
use Edujugon\PushNotification\PushNotification;
class SendPushNotification extends Controller
{
public function RideAccepted($request){
return $this->sendPushToUser($request->user_id, trans('api.push.request_accepted'), 'accepted');
}
public function RideAcceptedRemainProviders($request,$provider){
return $this->sendPushToProvider($request->provider_id, 'Current ride request has been Accepted by '.$provider->first_name.'-'.$provider->service->service_number);
}
public function RideCancelledAllProviders($request,$user_name){
return $this->sendPushToProvider($request->provider_id, 'User cancelled the request');
}
public function AdminApproveProvider($provider){
return $this->sendPushToProvider($provider->id, 'Admin approved your account to ride SERVICE NAME :'.$provider->service->service_type->name);
}
public function AdminDisapproveProvider($provider){
return $this->sendPushToProvider($provider->id, 'Admin disapproved your account to ride SERVICE NAME :'.$provider->service->service_type->name);
}
public function user_schedule($user){
return $this->sendPushToUser($user, trans('api.push.schedule_start'));
}
public function provider_schedule($provider){
return $this->sendPushToProvider($provider, trans('api.push.schedule_start'));
}
public function UserCancellRide($request){
return $this->sendPushToProvider($request->provider_id, trans('api.push.user_cancelled'));
}
public function ProviderCancellRide($request){
return $this->sendPushToUser($request->user_id, trans('api.push.provider_cancelled'));
}
public function Arrived($request){
return $this->sendPushToUser($request->user_id, trans('api.push.arrived'), 'arrived');
}
public function Pickedup($request){
return $this->sendPushToUser($request->user_id, trans('api.push.pickedup'), 'pickedup');
}
public function Dropped($request){
Log::info( trans('api.push.dropped').Setting::get('currency').$request->payment->total.' by '.$request->payment_mode);
return $this->sendPushToUser($request->user_id, trans('api.push.dropped').Setting::get('currency').$request->payment->total.' by '.$request->payment_mode, 'dropped');
}
public function Complete($request){
return $this->sendPushToUser($request->user_id, trans('api.push.complete'), 'completed');
}
public function Rate($request){
return $this->sendPushToUser($request->user_id, trans('api.push.rate'));
}
public function ProviderNotAvailable($user_id){
return $this->sendPushToUser($user_id,trans('api.push.provider_not_available'));
}
public function IncomingRequest($provider, $voip=false){
$this->sendPushToProvider($provider, trans('api.push.incoming_request'), 'searching');
}
public function DocumentsVerfied($provider_id){
return $this->sendPushToProvider($provider_id, trans('api.push.document_verfied'));
}
/**
* Money added to user wallet.
*
* @return void
*/
public function WalletMoney($user_id, $money){
return $this->sendPushToUser($user_id, $money.' '.trans('api.push.added_money_to_wallet'));
}
public function ChargedWalletMoney($user_id, $money){
return $this->sendPushToUser($user_id, $money.' '.trans('api.push.charged_from_wallet'));
}
public function sendPushToUser($user_id, $push_message,$sound="default"){
try{
// $user = User::findOrFail($user_id);
// if($user->device_token != ""){
// \Log::info('sending push for user : '. $user->first_name);
// if($user->device_type == 'ios'){
// return \PushNotification::app('IOSUser')
// ->to($user->device_token)
// ->send($push_message, array('sound' => $sound.'.caf'));
// }elseif($user->device_type == 'android'){
// return \PushNotification::app('AndroidUser')
// ->to($user->device_token)
// ->send($push_message, array('sound' => $sound));
// }
// }
$user = User::findOrFail($user_id);
if($user->device_token != ""){
\Log::info('sending push for user : '. $user->first_name);
\Log::info($push_message);
if($user->device_type == 'ios'){
if(env('IOS_USER_ENV')=='development'){
$crt_user_path=app_path().'/apns/user/enterprise_user.pem';
$crt_provider_path=app_path().'/apns/user/enterprise_user.pem';
$dry_run = true;
}
else{
$crt_user_path=app_path().'/apns/user/enterprise_user.pem';
$crt_provider_path=app_path().'/apns/user/enterprise_user.pem';
$dry_run = false;
}
$push = new PushNotification('apn');
$push->setConfig([
'certificate' => $crt_user_path,
'passPhrase' => env('IOS_USER_PUSH_PASS', 'apple'),
'dry_run' => $dry_run
]);
$send= $push->setMessage([
'aps' => [
'alert' => [
'body' => $push_message
],
'sound' => 'default',
'badge' => 1
],
'extraPayLoad' => [
'custom' => $push_message
]
])
->setDevicesToken($user->device_token)->send();
\Log::info('sent');
return $send;
}elseif($user->device_type == 'android'){
$push = new PushNotification('fcm');
$send= $push->setMessage(['message'=>$push_message])
->setDevicesToken($user->device_token)->send();
return $send;
}
}
} catch(Exception $e){
return $e;
}
}
public function sendPushToProvider($provider_id, $push_message){
try{
// if($voip == true)
// {
// \Log::info('voip token');
// \PushNotification::app('IOSProviderVoip')
// ->to($provider->voip_token)
// ->send($push_message);
// }
// $provider = ProviderDevice::where('provider_id',$provider_id)->with('provider')->first();
// $provider = ProviderDevice::where('provider_id',$provider_id)->where('current','1')->with('provider')->orderBy('id','DESC')->first();
// // dd($provider->token);
// if($provider->token != ""){
// \Log::info('sendnig push for provider : '. $provider->provider->first_name);
// if($provider->type == 'ios'){
// \PushNotification::app('IOSProvider')
// ->to($provider->token)
// ->send($push_message);
// }elseif($provider->type == 'android'){
// \PushNotification::app('AndroidProvider')
// ->to($provider->token)
// ->send($push_message);
// }
// }
$provider = ProviderDevice::where('provider_id',$provider_id)->with('provider')->first();
if($provider->token != ""){
if($provider->type == 'ios'){
if(env('IOS_USER_ENV')=='development'){
$crt_user_path=app_path().'/apns/user/enterprise_user.pem';
$crt_provider_path=app_path().'/apns/user/enterprise_user.pem';
$dry_run = true;
}
else{
$crt_user_path=app_path().'/apns/user/enterprise_user.pem';
$crt_provider_path=app_path().'/apns/user/enterprise_user.pem';
$dry_run = false;
}
$push = new PushNotification('apn');
$push->setConfig([
'certificate' => $crt_provider_path,
'passPhrase' => env('IOS_PROVIDER_PUSH_PASS', 'apple'),
'dry_run' => $dry_run
]);
$send= $push->setMessage([
'aps' => [
'alert' => [
'body' => $push_message
],
'sound' => 'default',
'badge' => 1
],
'extraPayLoad' => [
'custom' => $push_message
]
])
->setDevicesToken($provider->token)->send();
return $send;
}elseif($provider->type == 'android'){
$push = new PushNotification('fcm');
$send= $push->setMessage(['message'=>$push_message])
->setDevicesToken($provider->token)->send();
return $send;
}
}
} catch(Exception $e){
return $e;
}
}
}
那是我的代码。第 402 行在下面
elseif($provider->type == 'android'){
$push = new PushNotification('fcm');
$send= $push->setMessage(['message'=>$push_message])
->setDevicesToken($provider->token)->send();
return $send;
}
解决方案
由于Edujugon\PushNotification\PushNotification
找不到,我建议您检查您的config/app.php
文件并确保您没有错过提供者。
推荐阅读
- rust - 如何将 Rust 数字转换为英文单词,如 1 -> "one"?
- python - 使用遗传算法优化神经网络 - 优化层和权重
- ios - Flutter BoringSSL-GRPC 无法安装
- python - 快速帮助在 for 循环中设置方程的总和?
- javascript - 当响应名称为动态时,从嵌套的 json 响应中访问值
- laravel - Laravel 回声服务器
- python-3.x - 我的 python 代码需要很长时间才能运行
- html - 每次播放时处理重复声音的 Html5 音频
- java - 如何在java中添加字符串和int的循环
- azure - 如何在 Azure 中解压缩和移动文件?