محمدرضا عطوان
6 سال پیش توسط محمدرضا عطوان مطرح شد
4 پاسخ

کار نکردن event ها

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


ثبت پرسش جدید
حسن محمدزاده
تخصص : مدیر فنی
@hassan 6 سال پیش مطرح شد
1

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


حسن محمدزاده
تخصص : مدیر فنی
@hassan 6 سال پیش مطرح شد
0

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


محمدرضا عطوان
تخصص : Full-Stack Developer &...
@mratwan 6 سال پیش آپدیت شد
0

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

    }
}

حسن محمدزاده
تخصص : مدیر فنی
@hassan 6 سال پیش مطرح شد
1

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


محمدرضا عطوان
تخصص : Full-Stack Developer &...
@mratwan 6 سال پیش مطرح شد
0

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


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

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