TypeError
App\Model\Products\CategoryModel::getCategoryById(): Argument #1 ($categoryId) must be of type int, null given, called in /var/www/albero/application/controllers/Product.php on line 24 TypeError thrown with message "App\Model\Products\CategoryModel::getCategoryById(): Argument #1 ($categoryId) must be of type int, null given, called in /var/www/albero/application/controllers/Product.php on line 24" Stacktrace: #3 TypeError in /var/www/albero/application/models/Products/CategoryModel.php:10 #2 App\Model\Products\CategoryModel:getCategoryById in /var/www/albero/application/controllers/Product.php:24 #1 App\Controller\Product:getProduct in /var/www/albero/system/core/CodeIgniter.php:493 #0 require_once in /var/www/albero/public/index.php:317
Stack frames (4)
3
TypeError
/application/models/Products/CategoryModel.php10
2
App\Model\Products\CategoryModel getCategoryById
/application/controllers/Product.php24
1
App\Controller\Product getProduct
/system/core/CodeIgniter.php493
0
require_once
/public/index.php317
/var/www/albero/application/models/Products/CategoryModel.php
<?php
 
namespace App\Model\Products;
 
use App\Model;
use JetBrains\PhpStorm\Internal\ReturnTypeContract;
 
class CategoryModel extends Model
{
    public function getCategoryById(int $categoryId)
    {
        if (empty($categoryId)) {
            return [];
        }
        
        $SQL_TEXT = <<<sql
                SELECT  c.id AS category_id,
                        c.name AS category_name,
                        c.meta_title AS category_meta_title,
                        c.meta_description AS category_meta_description,
                        c.meta_keywords AS category_meta_keywords,
                        c.logo AS category_logo,
                        c.`description` AS category_description,
                        c.h1 AS category_h1,
                        c.url as slug, 
                        concat(c.url, '_', c.id) as final_slug,
                        c.news_ids
                FROM categories c
                WHERE c.id = '$categoryId'
            sql;
 
            return $this->mcs->getRowSQL($SQL_TEXT, 'getCategoryById');
    }
 
    public function getCategoriesForMainMenu(): array
    {
        $categories = $this->mcs->getDataSQL("SELECT * FROM v_menu", 'getCategoriesForMainMenu');
        $menu = [];
 
        foreach ($categories as $category) {
Arguments
  1. "App\Model\Products\CategoryModel::getCategoryById(): Argument #1 ($categoryId) must be of type int, null given, called in /var/www/albero/application/controllers/Product.php on line 24"
    
/var/www/albero/application/controllers/Product.php
use App\Core\FrontendController;
use App\Model\Products\ProductModel;
use App\Model\Products\CategoryModel;
use Own\Event;
 
class Product extends FrontendController
{
    private ProductModel $pm;
 
    public function __construct()
    {
        parent::__construct();
        $this->pm = new ProductModel();
        $this->pageType = 'product';
    }
 
    public function getProduct(string $productUrl, int $productId)
    {
        $this->data['product'] = $this->pm->getProduct($productId);
        $this->data['product']['category'] = $this->categories->getCategoryById($this->data['product']['category_id']);
        if ($this->data['product']['url'] !== $productUrl) {
            redirect(base_url('product/' . $this->data['product']['url'] . '_' . $productId), 'auto', 301);
        }
 
        $langLib = get_instance()->lang;
        $idiom = get_instance()->userLang == 'ua' ? 'ukrainian' : 'russian';
        $langLib->load('seo',$idiom);
        $this->translater->translate($this->data['product']);
        $this->data['title'] = $this->data['meta_title'] =  $this->data['product']['site_name'] . $langLib->l('seo.suffix.product.title');
        $this->data['meta_description'] = $this->data['product']['site_name'] . $langLib->l('seo.suffix.product.meta_description');
        $this->data['h1'] = $this->data['product']['site_name'];
 
        $this->page = 'product';
        $this->render();
    }
}
 
 
 
 
/var/www/albero/system/core/CodeIgniter.php
$scalarTypes = ['int', 'bool', 'string'];
 
try {
    $newParams = [];
    $refMEthod = new ReflectionMethod($CI, $method);
    foreach ($refMEthod->getParameters() as $i=>$parameter) {
        $type = $parameter->getType()->getName();
        if(!in_array($type, $scalarTypes)) {
            $newParams[$parameter->getPosition()] = $containerBuilder->get($type);
        } else {
            $newParams[] = array_shift($params);
        }
    }
    if(!empty($params)) foreach ($params as $param) $newParams[] = $param;
    $params = $newParams;
} catch (ReflectionException $e) {
    show_error($e->getMessage());
}
 
call_user_func_array(array(&$CI, $method), $params);
 
// Mark a benchmark end point
$BM->mark('controller_execution_time_( ' . $class . ' / ' . $method . ' )_end');
 
/*
 * ------------------------------------------------------
 *  Is there a "post_controller" hook?
 * ------------------------------------------------------
 */
$EXT->call_hook('post_controller');
 
/*
 * ------------------------------------------------------
 *  Send the final rendered output to the browser
 * ------------------------------------------------------
 */
if ($EXT->call_hook('display_override') === FALSE) {
    $OUT->_display();
}
 
/var/www/albero/public/index.php
        );
    }
    else
    {
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
        exit(3); // EXIT_CONFIG
    }
 
    define('VIEWPATH', $view_folder.DIRECTORY_SEPARATOR);
 
/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 */
 
require_once BASEPATH.'core/CodeIgniter.php';
 
Arguments
  1. "/var/www/albero/system/core/CodeIgniter.php"
    

Environment & details:

empty
empty
empty
Key Value
lang
"ua"
Key Value
__ci_last_regenerate
1710815338
lang
"ukrainian"
Key Value
USER
"www-data"
HOME
"/var/www"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CDN_LOOP
"cloudflare"
HTTP_CF_CONNECTING_IP
"54.157.61.194"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_RAY
"866a08372b24202a-IAD"
HTTP_X_FORWARDED_FOR
"54.157.61.194"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_CONNECTION
"close"
HTTP_X_REAL_IP
"172.71.222.91"
HTTP_HOST
"albero.com.ua"
PHP_VALUE
"error_log=/var/logs/php/application_php_errors.log"
HTTPS
"on"
REDIRECT_STATUS
"200"
SERVER_NAME
""
SERVER_PORT
"80"
SERVER_ADDR
"192.168.0.2"
REMOTE_USER
""
REMOTE_PORT
"58026"
REMOTE_ADDR
"192.168.0.125"
SERVER_SOFTWARE
"nginx/1.23.4"
GATEWAY_INTERFACE
"CGI/1.1"
REQUEST_SCHEME
"http"
SERVER_PROTOCOL
"HTTP/1.0"
DOCUMENT_ROOT
"/var/www/albero/public"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/product/aksesuari-convex-1485-wc-fiksator-mat-nikel-convex_123505"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_FILENAME
"/var/www/albero/public/index.php"
PATH_INFO
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1710815338.4126
REQUEST_TIME
1710815338
APP_DEBUG
"true"
CI_ENV
"prod"
APP_URL
"https://albero.testserver.uno/"
THEME_URL
"https://i.albero.com.ua"
IMAGES_URL
"https://i.albero.com.ua"
DB_HOST
"database"
DB_USER
"leoceramika"
DB_PASS
"Fcu7Y8LMcM"
DB_NAME
"albero"
DB_PORT
"3306"
DB_CACHE
"false"
PER_PAGE
"24"
MAILER_DSN
"smtp://office%40albero.com.ua:[email protected]:587"
BLACK_FRIDAY
"false"
SYMFONY_DOTENV_VARS
"APP_DEBUG,CI_ENV,APP_URL,THEME_URL,IMAGES_URL,DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORT,DB_CACHE,PER_PAGE,MAILER_DSN,BLACK_FRIDAY"
Key Value
APP_DEBUG
"true"
CI_ENV
"prod"
HTTPS
"on"
APP_URL
"https://albero.testserver.uno/"
THEME_URL
"https://i.albero.com.ua"
IMAGES_URL
"https://i.albero.com.ua"
DB_HOST
"database"
DB_USER
"leoceramika"
DB_PASS
"Fcu7Y8LMcM"
DB_NAME
"albero"
DB_PORT
"3306"
DB_CACHE
"false"
PER_PAGE
"24"
MAILER_DSN
"smtp://office%40albero.com.ua:[email protected]:587"
BLACK_FRIDAY
"false"
SYMFONY_DOTENV_VARS
"APP_DEBUG,CI_ENV,APP_URL,THEME_URL,IMAGES_URL,DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORT,DB_CACHE,PER_PAGE,MAILER_DSN,BLACK_FRIDAY"
0. Whoops\Handler\PrettyPageHandler