1

奇妙な問題があります。ウェブサイトを本番環境にコピーしました(Windowsからubuntuへ)。大文字/小文字の問題をいくつか修正し、アプリが正常に動作するようになりました。レイアウトなしでレンダリングされているように見える 1 つのページを入力するまで。エラーはありません。また、firebugにはcssスタイルなどは表示されません。HTML ソースにもレイアウト コードがありません。その理由は何でしょうか?

編集:

コントローラー部分:

$dataProvider = Projects::model()->getInviteProjectsProvider();
$this->render('invite', array(
    'dataProvider' => $dataProvider
));

CActiveDataProvider を返します。

意見:

<?php

$this->breadcrumbs=array(
    'Projekty' => array('admin'),
    'Zapraszanie',
);

$this->renderPartial('_allMenu');

?>

<link rel="stylesheet" type="text/css" href="<?php echo $this->module->assetsUrl; ?>/css/projects.css"/> 

<h1>Projekty aktywne - zapraszanie</h1>
<?php   

    $this->widget('bootstrap.widgets.TbExtendedGridView', array(
        'id' => 'invite-grid',
        'type' => 'striped condensed',
        'dataProvider' => $dataProvider,
        'rowCssClassExpression' => '($data->leftCustomers<100) ? "error":""',
        'columns' => array(
            array(
                'name' => 'idProject',
                'htmlOptions' => array('width' => '60px', 'style' => 'text-align: right;', 'class' => 'gridIdColumn'),
            ),
            'name',
            array(
                'name' => 'leftCustomers',
                'header' => 'Pozostało <i class="icon-info-sign" rel="tooltipbootstrap" data-original-title="Gdy wartość ta jest mniejsza niż 100 - rekord jest podświetlony na czerwono"/>',
            ),
            'confirmStart',
            'presentationDate',
            array(
                'class' => 'bootstrap.widgets.TbRelationalColumn',
                'name' => 'Statystyki',
                'value' => '"Pokaż"',
                'url' => $this->createUrl('dynamicProjectStats')
            ),
            array(
                'header' => 'Postęp <i class="icon-info-sign" rel="tooltipbootstrap" data-original-title="Liczba zaproszeń / Limit zaproszeń"/>',
                'value' => function($data)
                {
                    $prc = round(($data->projectMaxInvites > 0) ? ($data->projectInvites)/ $data->projectMaxInvites * 100 : 0, 2);
                    Controller::widget('bootstrap.widgets.TbProgress', array(
                        'percent' => $prc,
                        'htmlOptions' => array(
                            'style' => 'height: 20px; margin-bottom: -20px',
                            'rel' => 'tooltipbootstrap',
                            'data-original-title' => $prc." %",
                        ),
                    ));
                },
            ),
            array(
                'class' => 'bootstrap.widgets.TbButtonColumn',
                'template' => '{view}{update}{delete}',
                'htmlOptions' => array(
                    'style' => 'width: 40px;',
                ),
            ),
            array(
                'header' => '',
                'htmlOptions' => array('style' => 'width: 43px'),
                'value' => function($data)
                {
                    $this->renderPartial('partials/_actionMenu', array('idProject' => $data->idProject, 'activated' => true, 'afterAction' => 'removeActiveProject'));
                }
            ),
            array(
                'header' => '',
                'value' => function($data)
                {
                    $this->renderPartial('partials/_statMenu', array('idProject' => $data->idProject, 'showIcon' => true));
                }
            ),
        )
    ));
?>

が使用されている列をコメントアウトすると、function($data)問題なく表示されることに気付きました。そのままにしておくと、レイアウトが表示されません。

EDIT2: 内部partials/_statMenuにウィジェットがレンダリングされpartials/_actionMenuていることに気付くはずです。bootstrap.widgets.TbButtonGroup

4

1 に答える 1

6

試す:

Yii::app()->controller->renderPartial(...)

それ以外の:

$this->renderPartial(...)
于 2013-05-23T10:59:24.590 に答える