bootstrap.widgets.TbDetailView, приложение Yii

Модель--

enter code here
 public function searchShop()
{
        $criteria = new CDbCriteria();
            $criteria->compare("name", $this->category, TRUE, "OR");
                $criteria->compare("shopname", $this->category, TRUE, "OR");
                    $criteria->compare("category", $this->category, TRUE, "OR");

            return Shops::model()->findAll($criteria);  
}

код----

enter code here
<?php 
foreach($models as $model):
    $this->widget(
'bootstrap.widgets.TbDetailView',
array(
'type'=>'bordered condensed',
'data' => array(
'id' =>array('view', 'id'=>$model->ID),
'Shop Name' => $model->shopname,
'Category' => $model->category,
'ID' => CHtml::link(CHtml::encode($model->ID), array('view', 'id'=>$model->ID))
),
'attributes' => array(
array('name' => 'Shop Name', 'label' => 'Shop name'),
array('name' => 'Category', 'label' => 'Category'),
array('name' => 'ID', 'label' => 'ID'),
),
)
);

echo "<br><hr><br>";
 endforeach;
 ?>

Я хочу ссылку на ID, щелкнув по ней, она отобразит файл просмотра, т.е. view.php модели магазинов.

Я использовал CHtml::link(CHtml::encode($model->ID), array('view', 'id'=>$model->ID)) но он показывает путь к этому представлению как 1

помогите мне... заранее спасибо


person FSShaikh    schedule 05.03.2014    source источник


Ответы (1)


пытаться

 CHtml::link(CHtml::encode($model->ID),
CController::createUrl('site/view',array('id'=>$model->ID)))

здесь я предположил, что представление действий находится в контроллере сайта. Если он лежит под каким-то другим именем модуля, то можно написать так "moduleName/controllerName/actionName"

Изменить: Хорошо, вам нужно попробовать кое-что. TbDetailView расширяет CDetailView. Теперь вы можете использовать TbDetailView как

$this->widget(
'bootstrap.widgets.TbDetailView',
array(
'type'=>'bordered condensed',
'data' => array(
'id' =>array('view', 'id'=>$model->ID),
'Shop Name' => $model->shopname,
'Category' => $model->category,
),
'attributes' => array(
array('name' => 'Shop Name', 'label' => 'Shop name'),
array('name' => 'Category', 'label' => 'Category'),
array('label' => 'ID', 'value' => CHtml::link(CHtml::encode($model->ID), array('view', 'id'=>$model->ID))),
),
)
);

Вы также можете сделать как

 $this->widget(
'bootstrap.widgets.TbDetailView',
array(
'type'=>'bordered condensed',
'data' =>$model,
'attributes' => array(
array('name' => 'shopname', 'label' => 'Shop name'),
array('name' => 'category', 'label' => 'Category'),
array('value' =>  CHtml::link(CHtml::encode($model->ID), array('view', 'id'=>$model->ID))
),, 'label' => 'ID'),
),
)
)

;

person Rafay Zia Mir    schedule 05.03.2014
comment
Я сделал то же самое. ID))) Не работает - person FSShaikh; 07.03.2014
comment
не работает? ссылка правильно показывает? это кликабельно? что показывает? - person Rafay Zia Mir; 07.03.2014
comment
Ссылка верна, но не активна... показывает ссылку для этого идентификатора.. я использую менеджер URL-адресов... неправильно ли использовать менеджер URL-адресов??? - person FSShaikh; 08.03.2014
comment
Нет, если это не кликабельно, это не проблема менеджера URL. Пожалуйста, поправьте меня, если я ошибаюсь. Он показывает только 1? Означает, что $model-›id показывает только 1, но не кликабельно? - person Rafay Zia Mir; 08.03.2014
comment
CHtml::link(CHtml::encode($model-›ID), CController::createUrl('site/view',array('id'=›$model-›ID))) показывает строку URL вместо показа ID имея ссылку на страницу view.php... он показывает URL-адрес как ‹a href=/myapp/index.php?r=shops/viewid=1›1‹/a› - person FSShaikh; 08.03.2014
comment
пожалуйста, смотрите правки, если это поможет. Если одно решение не работает, попробуйте другое. - person Rafay Zia Mir; 08.03.2014
comment
спасибо за помощь... я сделал это.. единственное изменение.. 'ID' => CHtml::link(CHtml::encode($model-›ID), array('shops/view', 'id' =›$model-›ID)), CHtml::link(CHtml::encode($model-›city-›name),array('city/view','id'=›$model-›city-› id)), 'Название магазина' =›CHtml::link(CHtml::encode($model-›shopname),array('shops/view','id'=›$model-›ID)), 'Категория ' => $model->category), 'attributes' => array( array('name' => 'ID','label' => 'ID','value'=>CHtml::link(CHtml:: encode($model-›ID), array('shops/view', 'id'=›$model-›ID)), 'type'=›'raw'), - person FSShaikh; 15.03.2014