ali
4 ماه پیش توسط ali مطرح شد
1 پاسخ

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

درود
من برای احراز هویت پیامکی در 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(); کار نمیکنه


ثبت پرسش جدید
ali
@ali.jafari7308 4 ماه پیش آپدیت شد
0

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


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

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