DetailView is best used for displaying a model in a regular format (e.g. each model attribute is displayed as a row in a table.) The model can be either an instance of yii\base\Model or an associative array.
DetailView uses the $attributes property to determines which model attributes should be displayed and how they should be formatted.
A typical usage of DetailView is as follows:
echo DetailView::widget([
'model' => $model,
'attributes' => [
'title', // title attribute (in plain text)
'description:html', // description attribute in HTML
[ // the owner name of the model
'label' => 'Owner',
'value' => $model->owner->name,
],
'created_at:datetime', // creation date formatted as datetime
],
]);
Examples of DetailsView
View Form
View Code
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use backend\modules\tools\models\Groupitems;
$this->title = 'Note : '. $model->slno;
$this->params['breadcrumbs'][] = ['label' => 'Students Instructions Note', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="studentsgblinvoicenote-view box box-body table-responsive">
<p>
<?= Html::a('Update', ['update', 'ccid' => $model->ccid, 'slno' => $model->slno], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'ccid' => $model->ccid, 'slno' => $model->slno], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'slno',
'course',
'note1',
'note2'
],
]) ?>
</div>
public function actionView($ccid, $slno)
{
return $this->render('view', [
'model' => $this->findModel($ccid, $slno),
]);
}
More Details
Karthik DetailView: http://demos.krajee.com/detail-view
Put line break in DetailsView
Textarea saved data to display in DeatilsView
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use backend\modules\tools\models\Groupitems;
$this->title = 'Note : '. $model->slno;
$this->params['breadcrumbs'][] = ['label' => 'Students Instructions Note', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="studentsgblinvoicenote-view box box-body table-responsive">
<p>
<?= Html::a('Update', ['update', 'ccid' => $model->ccid, 'slno' => $model->slno], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'ccid' => $model->ccid, 'slno' => $model->slno], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
//'ccid',
'slno',
[
'label' => 'Course',
'value' => Groupitems::getGroupitems($model->course),
],
[
'label' => 'Note 1',
'format'=>'raw',
'value' => nl2br($model->note1 ),
],
[
'label' => 'Note 2',
'format'=>'raw',
'value' => nl2br($model->note2),
],
],
]) ?>
</div>
Changing value of an attribute in DetailView widget
The above example call from function to display DetailsView
'value' => Groupitems::getGroupitems($model->course), <?= DetailView::widget([
'model' => $model,
'attributes' => [
'name',
'max_people_count',
'type',
[
'attribute' => 'recurring',
'format'=>'raw',
'value'=> function ($model) {
if($model->recurring == 1)
{
return 'yes';
}
else {
return 'no';
}
},
],
'day',
'time',
...
'value' => $model->recurring == 1 ? 'yes' : 'no'
The nl2br() function inserts HTML line breaks (<br> or <br />) in front of each newline (\n) in a string.Add Button in DetailsView
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use backend\modules\master\models\Masterfunctions;
/* @var $this yii\web\View */
/* @var $model backend\modules\tools\models\Centermessage */
$this->title = $model->ctm_id;
$this->params['breadcrumbs'][] = ['label' => 'Centermessages', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
$model->ctm_centers = Masterfunctions::getCenters($model->ctm_centers);
?>
<div class="centermessage-view box box-body table-responsive">
<?php
$button1 = Html::a('<span class = "glyphicon glyphicon-download"></span> Download', ['docs-download', 'filename' => $model->ctm_filename,], ['class' => 'btn-primary', 'title' => '', 'data' => ['method' => 'post']]);
$model->ctm_filename=$button1;
?>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
[
'attribute' => 'ctm_date',
'format' => ['date', 'php:d-m-Y'],
],
'ctm_heading',
'ctm_message',
[
'attribute' =>'ctm_filename',
'format'=>'html',
],
'ctm_centers',
'ctm_status',
],
]) ?>
</div>
Related Links
DropDownList