Yii2访问视图中的另一个控制器/视图

Yii2访问视图中的另一个控制器/视图,yii2,Yii2,我想做的是这样的: $this->render('//article/overview'); ?> <?php use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ /* @var $model app\models\Article */ $this->title = $model->subject; $this->params['breadcrum

我想做的是这样的:

$this->render('//article/overview'); ?>
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;

/* @var $this yii\web\View */
/* @var $model app\models\Article */

$this->title = $model->subject;
$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Articles'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class="article-view">

    <h1><?= Html::encode($this->title) ?></h1>
<div style="margin-top:20px;"><?php echo $model->contents; ?></div>
概述
的内容如下:

$this->render('//article/overview'); ?>
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;

/* @var $this yii\web\View */
/* @var $model app\models\Article */

$this->title = $model->subject;
$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Articles'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class="article-view">

    <h1><?= Html::encode($this->title) ?></h1>
<div style="margin-top:20px;"><?php echo $model->contents; ?></div>
以不同的方式解决。 如果可以用一种更简单的方式来做,我将表示欢迎。 我想在我的yii2应用程序主页上显示一个来自控制器的视图

所谓的观点

然后我从
site/index.php
中删除了上述代码,并更新了相关的控制器,即
controllers/SiteController.php

public function actionIndex()
    {
        $model  = Article::find()->where(['id' => 1])->one();
        return $this->render('//article/overview', [
            'model' => $this->findModel(1),
        ]);
    }
还添加了顶部的线条,如:

use app\models\Article;
use app\models\ArticleSearch;
并在控制器底部添加了另一个操作:

protected function findModel($id)
    {
        if (($model = Article::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException(Yii::t('app', 'The requested page does not exist.'));
    }

但我认为应该以一种更简单的方式来完成,仅仅调用已经存在的视图似乎有些过分。

可能类似于:Yii:::$app->runAction('article/overview',['id'=>1])?请提供更多细节。不清楚你想做什么。提供更多代码:从哪个视图访问其他视图?你有什么控制器,你不想调用什么动作。您可以在视图中使用$this->render('view/path')来呈现另一个视图。Hi@AntonRybalko-正如您所说,如果我在另一个视图中尝试使用与
$this->render('view/path')
相同的代码,即
$this->render('//article/overview'))
但是我得到的错误是,
$model
没有定义。请告诉我,您想查看更多代码的哪一部分。我已经给出了控制器和视图。您需要将
model
传递到视图
$this->render('//article/overview',model'=>$model)
之前,将
model
变量传递到第一个视图