راکت
حل شده

کار نکردن event ها

4 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

4
حسن محمدزاده
حسن محمدزاده
@hassan

تخصص: مدیر فنی

بهترین پاسخ

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

حسن محمدزاده
حسن محمدزاده
@hassan

تخصص: مدیر فنی

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

محمدرضا عطوان
محمدرضا عطوان
@mratwan

تخصص: Full-Stack Developer & AI Lover

بعد از ثبت نام این 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();
        }

    }
}

شاید پاسخ شما همین‌جا باشد

محمدرضا عطوان
محمدرضا عطوان
@mratwan

تخصص: Full-Stack Developer & AI Lover

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

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام