آفلاین
user-avatar

کار نکردن event ها

2 سال پیش
توسط محمدرضا عطوان آپدیت شد
آفلاین
user-avatar
محمدرضا عطوان ( 9831 تجربه )
2 سال پیش

با سلام و وقت بخیر
درقسمتی از وب سایتم نیاز دارم که مثلا بعد از خرید اطلاعات برا کاربر پیامک بشه
با دستورات artisan
event ها و listener ها رو ساختم و همه چی عالیه و هیچ اروری هم نمیاد ولی هیچ کدوم از پیامک ها ارسال نمیشه!
اما اگر پیامکو تو همون کد اصلی بذارم کار میکنه پس پیامک سالمه!
حالا به نظرتون من چطوری میتونممتوجه بشم دقیقا مشکل از کجاس؟

بهترین پاسخ انتخاب شده توسط محمدرضا عطوان
آفلاین
user-avatar
حسن امجد
2 سال پیش

زدید که به صورت صف اجرا بشه
آیا Queue رو راه اندازی کردید ؟
به صورت sync هستش؟

آفلاین
user-avatar
حسن امجد ( 8702 تجربه )
2 سال پیش

اگه میشه اون تکه کدی که داخلش از event استفاده میکنید
و بدنه event و listener رو بفرستید

آفلاین
user-avatar
محمدرضا عطوان ( 9831 تجربه )
2 سال پیش

بعد از ثبت نام این event فراخوانی میشه

event(new UserRegistered($user));

محتویات event :

class UserRegistered
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public $user;

    /**
     * Create a new event instance.
     *
     * @param User $user
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return IlluminateBroadcastingChannel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('channel-name');
    }
}

محتویات listener :

use AppEventsUserUserRegistered;
use IlluminateQueueInteractsWithQueue;
use IlluminateContractsQueueShouldQueue;
use Kavenegar;
use KavenegarExceptionsApiException;
use KavenegarExceptionsHttpException;

class SMS implements ShouldQueue
{
    use InteractsWithQueue;
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  UserRegistered  $event
     * @return void
     */
    public function handle(UserRegistered $event)
    {
        try{
            $mobile = $event->user->mobile;
            $pass= $event->user->pass;

            $receptor = "$mobile";
            $template =  "متد مورد نظر";
            $type =  "sms";
            $token = "$pass";
            $token2 =  "";
            $token3 =  "";
            $result = Kavenegar::VerifyLookup($receptor,$token,$token2,$token3,$template,$type);
        }
        catch(ApiException $e){
            echo $e->errorMessage();
        }
        catch(HttpException $e){
            echo $e->errorMessage();
        }

    }
}
آفلاین
user-avatar
حسن امجد ( 8702 تجربه )
2 سال پیش

زدید که به صورت صف اجرا بشه
آیا Queue رو راه اندازی کردید ؟
به صورت sync هستش؟

آفلاین
user-avatar
محمدرضا عطوان ( 9831 تجربه )
2 سال پیش

@hasan2i2 ممنونم از لطفتون.
مشکل حل شد.
یه اشتباه جزیی در کانفیگ بود
مرسی

برای ارسال پاسخ باید وارد سایت شوید