@EVOSandru6

Почему в YII2 не читается GET параметр в экшене определенного имени?

Добрый день,

Есть такая проблема. При том, что на локалке все работает адекватно, на хостинге адрес вида:

hostname.com/driver/transports/set-image?id={id}

Для действия:

...
use yii\web\Controller;
class BasicController extends Controller {
...
     public function actionSetImage($id)
    {
        echo $id;
        die();
    }
...
}


Выдает:

Missing argument 1 for app\components\BasicController::actionSetImage(), called in /var/www/vhosts/hostname.com/httpdocs/modules/driver/controllers/TransportsController.php on line 22 and defined

Корневой .htaccess:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]
RewriteRule (.*) web/$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php


web/.htaccess:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php


urlManager:

'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'showScriptName' => false,
            'enablePrettyUrl' => true,
            'rules' => [
                 'login' => 'auth/login',
                 'signup' => 'auth/signup',
                 'profile' => 'users/profile',
            ],
        ],


Вроде как все стандартно. Вариант Yii2 типа basic.

Если например исправить название actionSetImage на actionSetImag, а url на:

hostname.com/driver/transports/set-imag?id={id}

то я нормально получаю айдишник даже на хостинге.

В чем может быть загвоздка?

Проблема в том, что я не могу сформулировать вопрос для службы поддержки, странно, что на локалке все работает(
  • Вопрос задан
  • 349 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас ошибка в TransportsController на строке 22, а Вы приводите код BasicController
Видимо у Вас вызывается из TransportsController метод и не передается обязательный аргумент.
Ошибка у Вас и на сервере и на локалке, просто на локалке видимо ошибки отключены.

ПС. Странная у Вас там архитектура.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы