TypeError
App\Model\NewsModel::getNewsByCategory(): Argument #1 ($category_id) must be of type int, null given, called in /var/www/albero/application/models/NewsModel.php on line 82 TypeError thrown with message "App\Model\NewsModel::getNewsByCategory(): Argument #1 ($category_id) must be of type int, null given, called in /var/www/albero/application/models/NewsModel.php on line 82" Stacktrace: #4 TypeError in /var/www/albero/application/models/NewsModel.php:10 #3 App\Model\NewsModel:getNewsByCategory in /var/www/albero/application/models/NewsModel.php:82 #2 App\Model\NewsModel:getNewsById in /var/www/albero/application/controllers/News.php:28 #1 App\Controller\News:story in /var/www/albero/system/core/CodeIgniter.php:493 #0 require_once in /var/www/albero/public/index.php:317
Stack frames (5)
4
TypeError
/application/models/NewsModel.php10
3
App\Model\NewsModel getNewsByCategory
/application/models/NewsModel.php82
2
App\Model\NewsModel getNewsById
/application/controllers/News.php28
1
App\Controller\News story
/system/core/CodeIgniter.php493
0
require_once
/public/index.php317
/var/www/albero/application/models/NewsModel.php
<?php
 
namespace App\Model;
 
use App\Model;
use Own\EnvLoader;
 
class NewsModel extends Model
{
    public function getNewsByCategory(int $category_id, int $limit = 0, int $currentNewsId = 0): array
    {
        if ($this->lang === 'ru') {
            $filtersIsTranslated = ' AND sn.isTranslated = 1';
        } else {
            $filtersIsTranslated = '';
        }
 
        if ($currentNewsId > 0) {
            $filterByCurrentNews   = ' AND sn.id <> ' . $currentNewsId;
        } else {
            $filterByCurrentNews = '';
        }
 
        // For promo
        if ($category_id == 1) {
            $sortingNews = " ORDER BY IF(DATE(sn.disable) < CURRENT_DATE(), 0, 1) DESC, sn.priority ASC, sn.created DESC";
            $additionalFieldsForPromo = ", DATEDIFF(sn.disable,CURRENT_DATE()) AS days_to_left,
                (
                    CASE
                        WHEN DATE(sn.disable) < CURRENT_DATE() THEN 'completed'
                        WHEN DATEDIFF(sn.disable, sn.created) >= 200 THEN 'unlimited'
                        ELSE 'new'
                    END
                ) AS promo_status";
            
        } else {
            $sortingNews = " ORDER BY sn.created DESC";
            $additionalFieldsForPromo = '';
        }
 
Arguments
  1. "App\Model\NewsModel::getNewsByCategory(): Argument #1 ($category_id) must be of type int, null given, called in /var/www/albero/application/models/NewsModel.php on line 82"
    
/var/www/albero/application/models/NewsModel.php
                $n['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/images/news/' . $n['logo'];
            } else {
                $n['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/900x225/images/news/' . $n['logo'];
            } 
        }
        
        return $news;
    }
 
    public function getNewsById(int $newsId): array
    {
        $SQL_TEXT = <<<sql
            SELECT *
            FROM shop_news sn
            WHERE id = $newsId;
        sql;
 
        $news = $this->mcs->getRowSQL($SQL_TEXT, 'getNewsById');
        $news['path_to_logo'] = EnvLoader::getEnv('IMAGES_URL') . '/images/news/' . $news['logo'];
        $news['additional_news'] = $this->getNewsByCategory($news['category'], 4, $newsId);
 
        foreach ($news['additional_news'] as $k => $nad) {
            if ($nad['id'] == $newsId) { 
                unset($news['additional_news'][$k]);
                break;
            }
        }
 
        return $news;
    }
 
    public function getNewsByIds(string $newsIds): array
    {
        if (empty($newsIds)) {
            return [];
        }
        
        $newsIds = $this->db->escape_str($newsIds);
        $SQL_TEXT = <<<sql
            SELECT *
/var/www/albero/application/controllers/News.php
    private newsModel $nm;
 
    public function __construct()
    {
        parent::__construct();
        $this->nm = new newsModel();
        $this->pageType = 'news';
    }
 
    public function index()
    {
        $categoryNewsId = 2;
        $this->data['news'] = $this->nm->getNewsByCategory($categoryNewsId);
        $this->page = 'pageNews/news';
        $this->render();
    }
 
    public function story(string $newsUrl, int $newsId) 
    {
        $news = $this->nm->getNewsById($newsId);
        $this->translater->translate($news);
        $this->data['news'] = $news;
 
        
        if ($this->data['news']['url'] !== $newsUrl) {
            redirect(base_url('/news/story/' . $this->data['news']['url'] . '_' . $newsId), 'auto', 301);
        }
        $this->meta($news);
        $this->data['promotions'] = $this->nm->getNewsByCategory(1);
        $this->page = 'pageNews/news_one';
        $this->render();
    }
 
    private function meta(array $news)
    {
        $enc = 'UTF-8';
        $title = mb_strtoupper(mb_substr($news['name'], 0, 1, $enc), $enc) . mb_substr($news['name'], 1, mb_strlen($news['name'], $enc), $enc);
        $this->data['h1']  = $title;
        if(!empty($news['meta_title'])) $this->data['title']  = $this->data['meta_title'] = $news['meta_title'];
        else $this->data['title']  = $this->data['meta_title']  = $title . ' ' . l('news_title');
/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
1711719433
lang
"ukrainian"
Key Value
USER
"www-data"
HOME
"/var/www"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CDN_LOOP
"cloudflare"
HTTP_CF_CONNECTING_IP
"44.204.117.57"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_RAY
"86c040d98e0a800f-IAD"
HTTP_X_FORWARDED_FOR
"44.204.117.57"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_CONNECTION
"close"
HTTP_X_REAL_IP
"172.70.134.243"
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
"38848"
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
"/news/story/-15-na-obrani-modeli-dverey-rodos_135"
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
1711719433.5026
REQUEST_TIME
1711719433
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