I am making an application with Yii2 framework and I am not sure if I do everything right.
Here is an action from my controller:
public function actionView($id)
{
    $model = $this->findModel($id);
    $pictures = new Pictures();
    $upload = new UploadForm();
    $views = new Views();
    $contacts = $model->getContacts($model->user_id);
    $contact = $model->contact($model->user_id);
    $buttons = [
        'update' => '',
        'delete' => '',
    ];
    $gallery = '_gallery';
    $value = '';
    if (!Yii::$app->user->isGuest) {
        $isInBookmarks = Bookmark::find()->where([
            'user_id' => Yii::$app->user->identity->getId(), 'advert_id' => $id
        ])->all();
        if (!empty($isInBookmarks)) {
            $value = 'Delete ' . 'from bookmarks';
        } else {
            $value = 'Add to bookmarks';
        }
        if ($model->user_id == Yii::$app->user->identity->getId()) {
            $buttons['update'] = Html::a('Update advert', ['update', 'id' => $model->id], [
                'class' => 'btn btn-primary'
            ]);
            $buttons['delete'] = Html::a('Delete advert', ['delete', 'id' => $model->id], [
                'class' => 'btn btn-danger',
                'data' => [
                    'confirm' => 'Are you sure you want to delete this advert?',
                    'method' => 'post',
                ],
            ]);
            if (isset($_POST['delete_pic'])) {
                $model->deletePic();
            }
            $gallery = '_my-gallery';
        }
    }
    $views->countViews($_GET['id']);
    return $this->render('view', [
        'model' => $model,
        'contacts' =>$contacts,
        'contact' =>$contact,
        'value' => $value,
        'buttons' => $buttons,
        'pictures' => $pictures,
        'gallery' => $gallery,
        'upload' => $upload,
        'views' => $views,
    ]);
}
And here is my View code:
<div class="date-update">
    Last update: <?= date(Yii::$app->params['dateFormat'], $model->updated_at) ?>
</div>
<?= $this->render($gallery, [
   'pictures' => $pictures,
   'model' => $model,
   'upload' => $upload,
]) ?>
Is it correct to create
 $pictures = new Pictures();  
and
 $upload = new UploadForm();
in controller and to transmit them for two times to the view file, where I use them or I should better create them right in the view file? What will be right according to OOP and MVC principals?
 
     
     
    