Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
-
dakota
- Сообщения: 7
- Зарегистрирован: 2016.03.09, 20:00
Сообщение
dakota »
Помогите пожалуйста разобраться. Почему в поле contents.title ничего не отображается
Есть 2 таблицы (material, content) со связью
Код: Выделить всё
public function getContents()
{
return $this->hasMany(Content::className(), ['id_material' => 'id']);
}
в контроллере прописываю
Код: Выделить всё
public function actionIndex($group=false)
{
$dataProvider = new ActiveDataProvider([
'query' => Material::find()->with('contents')->where(['id_material_type'=>$group]),
]);
return $this->render('index', [
'dataProvider' => $dataProvider
]);
}
во view
Код: Выделить всё
<?= GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'columns' => [
'id',
'contents.title',
'date_create',
'date_end',
'date_start',
'date_update',
],
]); ?>
-
ElisDN
- Сообщения: 5845
- Зарегистрирован: 2012.10.07, 10:24
-
Контактная информация:
Сообщение
ElisDN »
Потому что это hasMany, и в contents содержится массив.
-
dakota
- Сообщения: 7
- Зарегистрирован: 2016.03.09, 20:00
Сообщение
dakota »
Код: Выделить всё
ii\data\ActiveDataProvider Object
(
[query] => Array
(
[0] => backend\models\Material Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 8
[id_material_type] => 1
[id_billing] => 0
[date_create] => 2016-03-09 02:03:06
[date_update] => 2016-03-09 02:03:06
[date_start] => 2016-03-28
[date_end] => 2016-03-24
[status] => active
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 8
[id_material_type] => 1
[id_billing] => 0
[date_create] => 2016-03-09 02:03:06
[date_update] => 2016-03-09 02:03:06
[date_start] => 2016-03-28
[date_end] => 2016-03-24
[status] => active
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
[contents] => Array
(
[0] => backend\models\Content Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 5
[id_material] => 8
[id_lang] => 1
[id_url] => 2
[title] => VPS
[keyword] => Keyword
[description] => Description
[text] => <p>sss</p>
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 5
[id_material] => 8
[id_lang] => 1
[id_url] => 2
[title] => VPS
[keyword] => Keyword
[description] => Description
[text] => <p>sss</p>
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
[1] => backend\models\Material Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 9
[id_material_type] => 1
[id_billing] => 0
[date_create] => 2016-03-09 04:03:32
[date_update] => 2016-03-09 04:03:32
[date_start] => 2016-03-28
[date_end] => 2016-03-30
[status] => active
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 9
[id_material_type] => 1
[id_billing] => 0
[date_create] => 2016-03-09 04:03:32
[date_update] => 2016-03-09 04:03:32
[date_start] => 2016-03-28
[date_end] => 2016-03-30
[status] => active
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
[contents] => Array
(
[0] => backend\models\Content Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 6
[id_material] => 9
[id_lang] => 1
[id_url] => 3
[title] => VPS2
[keyword] => Keyword
[description] => Description
[text] => <p>eeeee</p>
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 6
[id_material] => 9
[id_lang] => 1
[id_url] => 3
[title] => VPS2
[keyword] => Keyword
[description] => Description
[text] => <p>eeeee</p>
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
[key] =>
[db] =>
[id] =>
[_sort:yii\data\BaseDataProvider:private] =>
[_pagination:yii\data\BaseDataProvider:private] =>
[_keys:yii\data\BaseDataProvider:private] =>
[_models:yii\data\BaseDataProvider:private] =>
[_totalCount:yii\data\BaseDataProvider:private] =>
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] =>
)
-
dakota
- Сообщения: 7
- Зарегистрирован: 2016.03.09, 20:00
Сообщение
dakota »
как в <?= GridView::widget([ ... добаться до нужного элемента
-
chungachguk
- Сообщения: 435
- Зарегистрирован: 2012.07.17, 11:52
Сообщение
chungachguk »
dakota писал(а):как в <?= GridView::widget([ ... добраться до нужного элемента
Попробуй
заменить на
Код: Выделить всё
[
'attribute' => 'contents',
'value' => function($model) {
$out = '';
foreach($model->contents as $content) {
$out.= $content->title;
}
return $out;
}
]
-
dakota
- Сообщения: 7
- Зарегистрирован: 2016.03.09, 20:00
Сообщение
dakota »
ура)) заработало. Огромное спасибо))