راکت
حل شده

استفاده درست از متد ها در کلاس livewire

1 پاسخ

درود
من برای احراز هویت پیامکی در livewire نیاز بود از یک متد sendCode که تو مدل ایجادش کردم استفاده کنم و درست کار میکنه . تنها مسئله اینه که وقتی این متد رو استفاده میکنم تغییر وضعیت در فرانت انجام نمیشه .
ینی بعد ارسال اطلاعات به متدی که داخل کلاس livewire ساختم عملیات بک اند درست انجام میشه اما فرانت باید تغییر کنه اتفاقی نمیفته .
طی تست های مختلفی که انجام دادم متوجه شدم دلیلش وجود استفاده از متد sendCode ٬ که کار میکنه و sms ارسال میشه ٬ اما بعد موفقیت آمیز بودن دستورات دیگ که باید فرانت رو تغییر بده درست کار نمیکنه. ممنون میشم راهنمایی کنید
متد در کلاس livewire

public function login()
    {
        $valid = $this->validate([
            'mobile' => ['required' , 'max:20' , Rule::exists('users')],
        ]);
        if ($valid){
            $this->verifyStatus(); // change front login to verify
        }
        .
        .
        .
        if ($token->sendCode()) {
            session()->put("code", $token->id);
            session()->put("user_id", $user->id);
            session()->put("remember", $rememberMe);
            session()->flash('success', 'کد تایید به شماره موبایل شما پیامک شد.');

        }
    }

متد موجود در مدل token

public function sendCode()
    {
        if (! $this->user) {
            throw new \Exception("هیچ کاربری به این نشانه متصل نشده است.");
        }
        if (! $this->code) {
            $this->code = $this->generateCode();
        }
        try{
            $token =  $this->code;
            $receptor = $this->user->mobile;
            $template = '...';
            $api = new \Kavenegar\KavenegarApi("...");
            $result = $api->VerifyLookup($receptor,$token,'','',$template);
            if($result){
                foreach($result as $r){
                    echo "messageid = $r->messageid";
                    echo "message = $r->message";
                    echo "status = $r->status";
                    echo "statustext = $r->statustext";
                    echo "sender = $r->sender";
                    echo "receptor = $r->receptor";
                    echo "date = $r->date";
                    echo "cost = $r->cost";
                }
            }
        }
        catch(\Kavenegar\Exceptions\ApiException $e){
            // در صورتی که خروجی وب سرویس 200 نباشد این خطا رخ می دهد
            echo $e->errorMessage();
        }
        catch(\Kavenegar\Exceptions\HttpException $e){
            // در زمانی که مشکلی در برقرای ارتباط با وب سرویس وجود داشته باشد این خطا رخ می دهد
            echo $e->errorMessage();
        }
        return true;
    }

وقتی از متد $token->sendCode() استفاده میکنم $this->verifyStatus(); کار نمیکنه

ثبت پرسش جدید

پاسخ‌ها

1
ali
ali
@ali.jafari7308
بهترین پاسخ

با return کردن متد sendCode در لاین ۱۴ مسئله حل شد

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

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

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