Open BaseMax opened 1 year ago
$database = new Database();
return $database->Update(self::$tableName, $id, $columns, $values);
در چنین توابعی قبل از return یک خط اضافه بزارید کلا اصولا return رو در خط جدا قرار بدهیم بهتر است.
توی فایل مدل دراگ توابعی که دارید صدا میزنید همه با حرف بزرگ شده شروع جز این: public static function get(int|null $id = null) { $database = new Database();
return $database->get(self::$tableName, $id);
}
بهتره این هم مثل دیگری بشود.
$database = new Database();
return $database->Update(self::$tableName, $id, $columns, $values);
چنین دستوراتی که به متغییر اش نیازی نداریم رو میتونیم مستقیم new کنیم بدون ذخیره کردن در متغییر و فوری صدا بزنیم از پرانتز هم کمک بگیرید (new name)
Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30
Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31
Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30
Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31
Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30
Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31
Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30
Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31
{"detail":"Not found."}
باگ داره حل میکنم.
حل شد.
Routes.php routes.php چنین فایلی توی پروژه نیست.
Max Base, [4/21/2023 9:46 AM] public array $routes = [ "get" => [], "post" => [], "delete" => [], "put" => [], "fallback" ];
Max Base, [4/21/2023 9:46 AM] اخری رو برابر نال میتونستید بزارید و موقع صدا زدن callback هم چک کنید نال نباشه
Max Base, [4/21/2023 9:46 AM]
<?php
use App\Controllers\AuthenticationController;
use App\Controllers\InventoryController;
use App\Controllers\OrdersController;
use App\Application\Response\Response;
// Inventory Endpoints
$app->get("/api/inventory", [InventoryController::class, "index"]);
Max Base, [4/21/2023 9:46 AM] قبلا گفتم و اصولا حرف تکراری نمیزنم توی فال ها اگه مستقیم کسی ران کنه خطا میخوره
Max Base, [4/21/2023 9:46 AM] باید جلوی این رو بگیرید
Max Base, [4/21/2023 9:46 AM] قبلا با مثال توضیح دادم.
if ($id) $where = " WHERE `id` = $id";
کد اینطوری ننویسید دقیق و شفاف و کامل بنویسید اگر نال نبود ان موقع شرط اجرا بشود. کد اینطوری بدرد نمیخوره.
توی ریدمی در مورد SECRET_KEY توضیحی ندادید.
replace, regex
replace /{([a-zA-Z]+)}/ to ([^\/]+) or (?<$1>[^\/]+)
بعد که replace کردید حالا با regex preg_match چک کنید.
regex و دو تا ورودی هارو لاگ بگیر.
خروجی preg هم لاگ کن.
$path = "/api/users/{id}"; $uri = "/api/users/12";
$newPath = str_replace("{id}", "([^\/]+)", $path); $newPath = "\/api\/users\/([^\/]+)"; var_dump( preg_match('/^' . $newPath . '$/', $uri, $matches) );
$newPath = "\/api\/users\/([^\/]+)";
replace '/' to '\/'