В моей SiteController.phpYii DataProvider тема main.php
public function actionIndex()
{
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
//$this->render('index');
$dataProviderUser=new CActiveDataProvider('User',array(
'pagination'=>array(
'pageSize'=>20,
),
));
$dataProviderDomain = new CActiveDataProvider('Domain');
$this->render('index',array(
'dataProvider1'=>$dataProviderUser,
'dataProvider2'=>$dataProviderDomain
));
}
В моих темах/к/вид/макет/main.php
<?php
if(!Yii::app()->user->isGuest)
{
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider2,
'itemView'=>'_view',));
?>
Эта ошибка появляется: Неопределенная переменная: dataProvider2
Если я сделать это в моем main.php:
<?php
$dataProvider2 = new CActiveDataProvider('Domain');
if(!Yii::app()->user->isGuest)
{
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider2,
'itemView'=>'_view',));
?>
Это работает до сих пор. Но если я иду на пользователя Профиля:
/user/view/id/5
недвижимости «Domain.username» не определен.
Так что в моем User _view.php Yii, кажется, принимает Dataprovider домена.
Как я могу пройти мимо этих dataProviders в мой макет main.php-файл? Возможно, SiteController.php делает это правильно.
Было бы очень приятно, если у кого-то есть идея здесь. Спасибо в продвинутом режиме.
возможно дубликат [Как передать переменные в макете?] (Http://stackoverflow.com/questions/7058410/how-to-pass-variables-to-layout) – soju
попытался это. Это не работает. – K213