Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
TonyPride
2 / 2 / 1
Регистрация: 22.10.2012
Сообщений: 47
1

Yii2 - переход по controller/action выдаёт 404

12.06.2016, 09:16. Просмотров 1159. Ответов 1
Метки нет (Все метки)

Приветствую. Сперва опишу, как у меня что устроено. yii2 basic, все файлы лежат в корне, т.е. basic/web в пути нет. Имеется 2 контроллера: site и creation. Имеется лэйаут main.php, в него засунул общую стилизацию сайта и менюшку. Менюшка генерится через nav::widget. В ней есть ссылки на вьюхи как site, так и creation. В чём беда, когда пишу ссылку на /site/page, то всё работает, но при /creation/page выдаёт 404, не видит. Помогает только полный путь /views/creation/page.php, но тогда вызовется сам файл вьюхи без лэйаута, а это не вариант. Осваиваю yii недавно, мог где-то напороть с конфигами, потому прицеплю и их.


Конфиг web.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
 
$params = require(__DIR__ . '/params.php');
 
$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            //'baseUrl' => '',
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => 'JHyPL2ILqKa50gY6y_cvv-TROxv0VVtA',
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => true,
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'db' => require(__DIR__ . '/db.php'),
 
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
        ],
 
    ],
    'params' => $params,
];
 
if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];
 
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
    ];
}
 
return $config;


htaccess
PHP
1
2
3
4
5
6
7
8
9
10
11
Options +FollowSymLinks
IndexIgnore */*
 
RewriteEngine on
 
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
# otherwise forward it to index.php
RewriteRule . index.php


layouts/main.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
 
/* @var $this \yii\web\View */
/* @var $content string */
 
use yii\helpers\Html;
use yii\bootstrap\Nav;
 
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="/items/favicon.ico"/>
    <link rel="stylesheet" type="text/css" href="/css/style.css"/>
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
 
<div class="outline">
    <p class="quote">"Авторская песня - это серьезные раздумья о жизни человека, может быть, трагические, может быть,
        острые. Ведь авторская песня родилась как раз из этих трагических раздумий, из острых сюжетов, из клокотания
        души."</p>
    <div align="right" class="quote"> Булат Окуджава</div>
    <?php
    echo Nav::widget([
            'options' => ['class' => 'navbar-nav'],
            'items' => [
                ['label' => 'Home', 'url' => ['/site/index'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                ['label' => 'Bio', 'url' => ['/site/bio'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                ['label' => 'Creation',
                    'items' => [
                        ['label' => 'Poems', 'url' => ['/creation/poems'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                        ['label' => 'Prose', 'url' => ['/creation/prose'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                        ['label' => 'Filmography', 'url' => ['/creation/filmography'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                    ],
                ],
                ['label' => 'Contemporary', 'url' => ['/site/contemporary'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])],
                ['label' => 'Gallery', 'url' => ['/site/gallery'], 'active' => in_array(\Yii::$app->controller->id, ['site', 'creation'])]
            ],
        ]) . "<br><br><br><br>";
    ?>
    <?= $content ?>
</div>
 
<footer class="footer">
    <div class="container">
        <p class="pull-left">&copy; My Company <?= date('Y') ?></p>
        <p class="pull-right"><?= Yii::powered() ?></p>
    </div>
</footer>
 
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>


CreationController
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
namespace app\Controllers;
 
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
 
class CreationController extends \yii\web\Controller
{
 
    public function actionFilmography()
    {
        return $this->render('filmography');
    }
 
    public function actionPoems()
    {
        return $this->render('poems');
    }
 
    public function actionProse()
    {
        return $this->render('prose');
    }
 
}


P.S. до этого приходилось уже пощупать иишку, и таких проблем не было, так что вопрос наверняка совсем дурацкий, но не кидайте тапками, уже долго сижу и начал решать задачу полным перебором за неимением лучшего.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2016, 09:16
Ответы с готовыми решениями:

Yii2 Not Found (#404)
Здравствуйте, я только-только установил yii2. В файле SiteController.php...

Yii2. Передача GET параметра вызывает Not Found (#404)
Здравствуйте, пытаюсь передать get параметр, но получаю ошибку Not Found...

Как создать страницу ошибки 404 Yii2
Здравствуйте! Возни вопрос по поводу обработки ошибки 404 в фреймворке Yii2....

Ошибка 404 при запросе action
Установил yii2, через composer. Создал контроллер, екшн . Обращаюсь к нему...

Ошибка при установке Yii2-user with Yii2 advanced template
https://github.com/dektrium/yii2-user/blob/master/docs/usage-with-advanced-templ...

1
TonyPride
2 / 2 / 1
Регистрация: 22.10.2012
Сообщений: 47
19.06.2016, 09:13  [ТС] 2
Короче говоря, namespace app\controllers, с маленькой нужно. Как и ожидалось, ошибка ну очень мелкая, но промаялся долго.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2016, 09:13

Простой многостраничный сайт на Yii2 без БД, есть ли быстрый старт для новичка в Yii2?
Привет! Решил смастерить сайт на Yii2, прочел вчера вводный раздел...

Как расширить ссылку из Controller/Action/Id до Contr/Action/Category/Id ?
Здравствуйте, Дорогие форумчане! Давно не брался за ASP, поэтому задаю...

Action Controller ругается
Помогите начинающему в рельсах. изучаю &quot;учебничек&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru