رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت یک اکشن مشترک برای سمت وب و وب سرویس
#1
برای عملیات ریست کردن کلمه عبور بعد از اتمام عملیات در اکشن مورد نظر بسته به اینکه این عملیات سمت وب باشد یا وب سرویس خروجی با فرمت خاصی رو باید داشت ، وب سرویس ( Json) برای نمایش در نسخه آندروید به مشتری و در سمت وب render کردن یک صفحه و نمایش یک پیغام به مشتری ، چطوری یک اکشن رو بنویسم که عملیات ریست کردن کلمه عبور رو انجام بده و بسته به اینکه در وب سرویس یا سمت وب هست خروجی قابل قبول رو برگردونه؟
پاسخ
تشکر شده توسط:
#2
یه پارامتر خاص توسط اندروید بفرستین و توی سرور چک کنید اون پارامتر وجود داره یا نه. فرضاً با روش Post بفرستین و اینطرف با کد زیر بخونید:
if(!is_null(Yii::$app->request->post('mobile'))) {
    // generate response in JSON format
} else {
    // generate normal response
}
پاسخ
تشکر شده توسط: a1552f
#3
از سمت اندروید به یک اکشن میره که از کلاس 

yiirestController
هست سمت وب یک اکشن از کلاس 
yiiwebcontroller
میخوای اکشنی بنویسم که بتونم توی این دو کنترلر به طور مثال در اکشن reset استفاده کنم ازشون، و هر اکشن نسبت به نوع کنترلرش خروجی خاص خودشو برگردونه.
پاسخ
تشکر شده توسط:
#4
اکشن ننویسید. یه متد بصورت یه کلاس مستقل طراحی کنید. بعنوان مثال یه کلاس توی پوشه components بسازین (پوشه رو هم بسازین) و این کد رو بنویسید:
namespace appcomponents;

use Yii;
use yiiwebNotFoundHttpException;
use appmodelsUsers;

class MyTools
{
    public static function resetPassword($userId, $oldPass, $newPass)
    {
        if(!$model = Users::findOne($userId)) {
            throw new NotFoundHttpException('User not found.');
        }
        if($model->validatePassword($oldPass)) {
            $model->password = $newPass;
            return $model->save();
        }
        return false;
    }
}

و از این کد به اینصورت استفاده کنید:
use appcomponentsMyTools;

MyTools::resetPassword(5, '123456', '654321');
پاسخ
تشکر شده توسط: a1552f




کاربران در حال بازدید این موضوع: 1 مهمان