Проблемы Yii2: нормальная работа на локальном хостинге и ошибка на хостинге - PullRequest
0 голосов
/ 17 октября 2018

Необходимо сделать страницу новостей.Я сделал, на локальном сервере (открытый сервер) все работает отлично, и при загрузке на хост-сервер выдает ошибку 404.Версии php практически идентичны (7.0.2 на хостинге и 7.1+ на локальной).В чем может быть ошибка?

контроллер

public function actionNews()
{
    $category = NewsCategory::find()->where(['slug' => 'news'])->one();
    $news = $category->getChilds()->where(['status' => 'published']);

    $countQuery = clone $news;
    $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 8]);
    $models = $news->orderBy('date DESC')->offset($pages->offset)
    ->limit($pages->limit)
    ->all();

    return $this->render('news', [
        'model' => $models,
        'pages' => $pages,
    ]);
}

public function actionView($slug)
{
    $model = News::findOne(['slug' => $slug]);

    if(!$model = News::findOne(['slug' => $slug])){
      throw new NotFoundHttpException('Page not found');
    }
    return $this->render('view', [
        'model' => $model
    ]);
}

маршрутизация

'/news' => '/blog/news',
            '/news/<slug:[A-Za-z0-9 -_.]+>' => 'blog/view',
            '/view' => '/blog/view',

просмотр (файлы находятся в папке блога)

<?php
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\LinkPager;
$this->title = Yii::$app->name . " | Новости";
$this->title = Yii::t('app','Новости');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="container">
<h3>News company</h3>
<div class="row news-list">
   <?php foreach($model as $item) { ?>
   <div class="col-sm-3">
       <a class="news-img" href="<?=Url::toRoute(['/blog/view', 'slug' => 
$item->slug])?>">
         <img src="<?= $item->getImage()->getUrl('920x800') ?>"  alt="">
       </a>
       <a href="#"><?= $item->name; ?></a>
       <div class="small grey">
           <p><i class="fa fa-calendar"></i> <?= date('d.m.Y', 
strtotime($item->date)) ?></p>
           <p><?= mb_substr($item->text, 0, 80); ?>...</p>
       </div>
   </div>
   <?php } ?>
</div>
<?
echo LinkPager::widget([
  'pagination' => $pages,
]);
?>
</div>

.htaccess

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1

RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

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

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

1 Ответ

0 голосов
/ 24 октября 2018

Обнаружена ошибка.Дело в том, что вместо «использовать yii \ data \ Pagination;» я использовал «использовать yii \ data \ pagination;

»
...