在yii2中创建站点地图

在yii2中创建站点地图,yii,yii2,sitemap,Yii,Yii2,Sitemap,我想在yii2中创建站点地图 我不知道我会怎么做。 帮我从哪里开始? 这是我的新闻模型: /** * @inheritdoc */ public static function tableName() { return 'news'; } /** * @inheritdoc */ public function rules() { return [ [['news_cat_id', 'user_id','time'], 'integer'],

我想在yii2中创建站点地图 我不知道我会怎么做。 帮我从哪里开始? 这是我的新闻模型:

/**
 * @inheritdoc
 */
public static function tableName()
{
    return 'news';
}

/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['news_cat_id', 'user_id','time'], 'integer'],
        [['news_dec'], 'string'],
        [['news_title', 'logo'], 'string', 'max' => 255]
    ];
}
我不能和分机一起工作,因为没有好的文件

  • 安装软件包
    composer需要evert/sitemap php
  • 在@app/commands/目录中为控制台应用程序创建命令控制器

    类SitemapController扩展控制器 {

    }

  • 将控制器添加到console.php配置文件

    $config=[ ... “控制器映射”=>[ “站点地图”=>[ 'class'=>'app\commands\SitemapController' ], ] ];

  • 并添加到top console.php
    Yii::setAlias('@webroot',dirname(_DIR__)。'/../web')

  • 运行命令
    php yii sitemap
    。脚本将文件sitemap.xml生成到web目录

  • 转到链接-


  • 您可以通过cron运行这个命令
    php-yii-sitemap

    i使用composer安装。但是在哪里输入示例代码呢?您可以在控制器中创建一个操作并生成一个站点地图thereXMLWriter::openUri():无法解析此操作的文件路径:$sitemap->addItem(“/”、'1.0'、'daily'、'Today');添加到top console.php Yii::setAlias('@webroot',dirname(DIR)。'/../web');试试这个$sitemap->addItem(''1.0','daily','Today');无斜线
    public function actionIndex(){
    
        $host = 'http://yoursitehost.com/';
    
        $sitemap = new Sitemap($host);
    
        $sitemap->setPath(Yii::getAlias('@webroot').DIRECTORY_SEPARATOR);
    
        $sitemap->addItem('', '1.0', 'daily', 'Today');
        $sitemap->addItem('news', '9.0', 'daily', 'Today');
    
        foreach(News::find()->batch(50) as $news){
            foreach($news as $n){
                $sitemap->addItem(Url::toRoute(['news/view', 'id' => $n->id]), '8.0', 'daily', 'Today');
            }
        }
    
        $sitemap->createSitemapIndex($host, 'Today');
    }