You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yii2页面首次加载内容显示异常,刷新后恢复正常求助

问题描述
  • 首次访问页面时内容并非总能正常显示,刷新页面后加载恢复正常。
  • 错误加载场景下,页面显示来源页面(Home/Projects)的面包屑导航、标题「Projects」及按钮「Creating a New Project」,而正确内容应为「Pattern : Project」名称;页面表格和保存按钮可正常加载,即使表头信息错误,修改表格条目并保存的操作仍能正常执行。
  • 另一页面存在相同问题:不仅表头信息(面包屑、Project、Project按钮)错误,下方表格也显示异常。
环境信息
  • Yii2 版本:2.0.47
  • PHP 版本:8.1.13
  • 已通过 Composer 完成全量更新
视图文件代码
<?php

use app\models\UserPatternProgress;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\widgets\Pjax;
use yii\grid\GridView;
?>

<h1><?= Html::encode($patternName.': '.$projectName) ?></h1>
<div class="user-param-index">
    <?php Pjax::begin(); ?>
    <?php $form = ActiveForm::begin([
        'id' => 'user_param-form',
    ]); ?>  

<?php
    $gridColumns = [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'attribute'=>'id',
            'visible' => 0,
        ],
        [
            'attribute'=>'param_id',
            'header'=>'Options',
            'value'=> function($model){
                $paramModel = new app\models\PatternParam();
                $inputType = $paramModel->getParamInputType($model->param_id);
                switch ($inputType) {
                    case 1:
                        return $paramModel->getParamSub2Name($model->param_id);
                        break;
                    case 2:
                        $progress=FALSE;
                        $name = $paramModel->getParamSub1Name($model->param_id);
                        if ($name==='SIZE') {
                            $userPatProgrModel = new UserPatternProgress();
                            $progress = $userPatProgrModel->getUserProgressDoneCtByProject($model->project_id)>0;
                            if($progress) {$name.=' - Any change in the selected value may lead to loss of progress!';}
                        }
                        return $name;
                        break;
                }
            },
        ], 
        [
            'attribute' => 'param_value',
            'header'=>'Personalize it!',
            'format' => 'raw',
            'value' => function ($model) {
                $patParam = new app\models\PatternParam();
                $inputType = $patParam->getParamInputType($model->param_id);
                $name = 'UserParam['.$model->id.'][param_value]';
                switch ($inputType) {
                    case 1:
                        return Html::textInput($name,\yii\helpers\Html::encode($model->param_value),['class' => 'form-control']);
                        break;
                    case 2:
                        $selection = \yii\helpers\Html::encode($model->param_value);
                        $model2 = new \app\models\PatternParam();
                        $keyItems = $model2->getParamsAsArray($model->param_id);
                        $options = ['class' => 'form-multiselect'];
                        return Html::dropDownList($name, $selection, $keyItems, $options);
                        break;
                }
            },
        ],             
    ];
    ?>
    <?php
        Yii::$app->session->getFlash('error');
        echo GridView::widget([
            'dataProvider' => $dataProvider,
            'columns' => $gridColumns,
        ]);
    ?>
    <p>
        <?= Html::submitButton('Save', ['class' => 'btn btn-primary']) ?>

    </p>    
    <?php ActiveForm::end(); ?>
    <?php Pjax::end(); ?>

</div>
补充说明
  • 错误显示状态:页面显示Projects标签及按钮
  • 正确显示状态:页面顶部为项目名称
  • 页面加载入口:通过带按钮的GridView加载页面

内容的提问来源于stack exchange,提问作者jophilly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:22:03