💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ Hamed Hardani
عدم دریافت لیست استان ها
امیر صالحی حل شده توسط امیر صالحی

سلام

من بخش Province رو مطابق همون کارهایی که برای City انجام دادیم پیاده سازی کردم. 

اما وقتی که توی Postman درخواست GET ارسال میکنم پاسخی که دریافت میکنم تنها عدد ۱ هست. 

هیچ پارامتری خاصی هم ارسال نمیکنم و صرفا میخوام لیست کامل استان‌ها رو دریافت کنم.

اشکال از چی میتونه باشه؟ 

سلام 

کوری سلکتت رو چک کن و همچنین بصورت معمولی بدون api سلکت کن توسط هموم تابعی که برای سلکت نوشتی ببین اطلاعاتی بهت میده احتمال زیاد مشکل از اونه اگر باز نتونستی حل کنی کد هات رو قرار بده تا بتونم کمکت کنم  

میثم ۰۱ آذر ۱۳۹۹، ۱۹:۵۸

سلام و احترام

یک بار قدم به قدم پروژه رو trace کن.

اول ببین که درخواست به سمت endpoint میره.

اگر داده از cache خونده میشه ببینید cache به درستی ذخیره میشه.

بعدش بررسی کنید که تابعی که برای شما مقادیر رو برمیگردونه خروجی مناسب میده

اگه امکانش بود کدهای خودتونو هم قرار بدید تا دقیق‌تر بررسی شه.

امیر صالحی ۰۲ آذر ۱۳۹۹، ۰۴:۴۵

فایل index.php در پوشه provinces :

use \App\Services\ProvinceService;
use \App\Utilities\Response;
use \App\Utilities\CacheUtility;
$token = getBearerToken();
$user = isValidToken($token);
if (!$user) {
    Response::respondAndDie(['Invalid Token!'], Response::HTTP_UNAUTHORIZED);
    $request_method = $_SERVER['REQUEST_METHOD'];
    $request_body = json_decode(file_get_contents('php://input'), true);
    $province_service = new ProvinceService();
    switch ($request_method) {
        case 'GET':
            $province_id = $_GET['province_id'] ?? null;
            CacheUtility::start();
            $request_data = [
                'province_id' => $province_id,
                'fields' => $_GET['fields'] ?? null,
                'orderby' => $_GET['orderby'] ?? null,
                'page' => $_GET['page'] ?? null,
                'pagesize' => $_GET['pagesize'] ?? null,
            ];
            $response = $province_service->getProvinces();
            if (empty($response))
                Response::respondAndDie($response, Response::HTTP_NOT_FOUND);
            echo Response::respond($response, Response::HTTP_OK);
            CacheUtility::end();
            die();

تابع getProvinces در فایل iran.php :

function getProvinces($data = null)
{
    global $pdo;
    $sql = "select * from province";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $records = $stmt->fetchAll(PDO::FETCH_OBJ);
    return $records;
}
Hamed Hardani ۰۲ آذر ۱۳۹۹، ۰۸:۱۹

سلام و احترام

مشکل از شرطی هستش که شما اول کدتون برای valid بودن کاربر استفاده کردید. 

در اصل بهتره که شما not بودن اون شرط رو بررسی کنید تا هم کدتون خوانا‌تر باشه و هم کثیف نباشه. کافیه که شرطتونو به شکل زیر دربیارید.

if (!isValidToken($token))
    Response::respondAndDie(['Invalid Token!'], Response::HTTP_UNAUTHORIZED);

براکت اضافه در آخر کد خودتون رو هم بردارید تا به خطای syntax بر نخورید

 

بهترین پاسخ
امیر صالحی ۰۳ آذر ۱۳۹۹، ۰۸:۲۳