@driverx18

Почему если в урле есть гет параметр с массивом, то роутит в непонятное место?

Заметил, что если в гет параметре есть данные, например:
?method=check&params[account]=test

То отдается эксешпн с месседжом: Array to string conversion.
Если же убрать [account], то всё ок.
Мне кажется, что оно просто роутит в непонятное место и виноват nginx.
Прилагаю конфиг nginx:
server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

server {
	listen 443 ssl;
	index index.php index.html;
	root /var/www/public;                                      
	ssl_certificate /etc/nginx/certs/your_domain.crt;
	ssl_certificate_key /etc/nginx/certs/rsa.key;
	server_name domain.domain;
	location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
	location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }	
}

Но не исключаю также, что возможно это где то в ларавеле что-то не так, и я чего то не знаю :)
Может я не правильно прописал роут?
Route::match(['get', 'post'], '/check', 'TestController@handle');
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 1
l3ftoverz
@l3ftoverz
Нет ничего лучше, чем музыка DGD.
Ошибка говорит о том, что где-то в коде идёт вызов чего-то как строки, а это что-то - массив.
Проблема в PHP и говяном роутинге.

Роутер достаёт params и работает как со строкой, но PHP преобразовывает подобные GET параметры, автоматически превращая их в массив.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
06 авг. 2020, в 19:21
5000 руб./за проект
06 авг. 2020, в 18:45
700 руб./в час
06 авг. 2020, в 17:58
8000 руб./за проект