// MANUAL
class Order extends ActiveRecord
{
public function getOrderItems()
{
return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
}
public function getItems()
{
return $this->hasMany(Item::className(), ['id' => 'item_id'])
->via('orderItems');
}
}
//MEU MODEL
class Order extends \yii\db\ActiveRecord{ /** * @inheritdoc */ public static function tableName() { return 'order'; }
/** * @inheritdoc */ public function rules() { return [ [['name'], 'required'], [['name'], 'string', 'max' => 80], ]; }
/** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'name' => 'Name', ]; }
/** * @return \yii\db\ActiveQuery */ public function getOrderItems() { return $this->hasMany(OrderItem::className(), ['order_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getItems() { return $this->hasMany(Item::className(), ['id' => 'item_id']) ->via('orderItems'); }}
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ // ['class' => 'yii\grid\SerialColumn'], // // 'id', [ 'label' => 'Item', 'attribute' => 'item_id', 'value' => 'items.item' ], 'name',
['class' => 'yii\grid\ActionColumn'], ], ]); ?>
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/44c7b47e-d34c-43bb-a54e-8de08650e2a7%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
'value' => 'items.item_id' ?
--
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/251858bf-cb44-4532-aad6-0432d5a2cc25%40googlegroups.com.
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/c3d5b34b-7622-4a4d-940e-d8f124a74b31%40googlegroups.com.
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/396e7fe3-3b87-4ceb-9e6b-8e59a1808077%40googlegroups.com.
Na query que rodei no Mysql ele exibe 7 linhas e não faz a separação por virgula dos itens
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/4e237c99-8a6c-4e48-bf99-bff94ba8918c%40googlegroups.com.
'value' => function($data){ $items = ArrayHelper::map($data->items, 'id', 'name'); //name or title echo Inflector::sentence($items, ' e ');}
SELECT `Area`.`sigla` , `Processo`.`id` , `Processo`.`processo` , `Processo`.`macroprocesso_id`
FROM `Processo`
LEFT JOIN `Macroprocesso` ON `Processo`.`macroprocesso_id` = `Macroprocesso`.`id`
INNER JOIN `Macroprocesso_Area` ON Macroprocesso_Area.macroprocesso_id = Macroprocesso.id
INNER JOIN `Area` ON Area.id = Macroprocesso_Area.area_id
LIMIT 20
public function getMacroprocessoAreas() { return $this->hasMany(MacroprocessoArea::className(), ['MACROPROCESSO_ID' => 'ID'])->via('macroprocesso'); }
public function getMacroprocesso() { return $this->hasOne(Macroprocesso::className(), ['ID' => 'MACROPROCESSO_ID']); }
'value' => 'macroprocessoAreas.AREA_ID',
'value' => 'macroprocessoAreas.macroprocesso.ID',
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/eff2dc24-5d04-40d5-b57d-64c1b7dfdaf1%40googlegroups.com.
public function search($params) { $query = Processo::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $dataProvider->setSort([ 'defaultOrder' => [ 'AREA_ID' => SORT_ASC, 'MACROPROCESSO_ID' => SORT_ASC, 'PROCESSO' => SORT_ASC, ], 'attributes' => [ 'AREA_ID' => [ 'asc' => ['SIGLA' => SORT_ASC], 'desc' => ['SIGLA' => SORT_DESC], 'default' => SORT_ASC, ], 'MACROPROCESSO_ID' => [ 'asc' => ['MACROPROCESSO' => SORT_ASC], 'desc' => ['MACROPROCESSO' => SORT_DESC], ], 'PROCESSO' ], ]);
$this->load($params);
if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->select("AUT.AUT_SETORES.SIGLA, SGR_PROCESSO.ID, SGR_PROCESSO.PROCESSO, SGR_PROCESSO.MACROPROCESSO_ID"); /** * Jaz um join com o relacionamento que exite no model. * Dessa forma traz somente o(s) campo(s) que interessam na query * Caso queira trazer tudo basta usar * $query->joinWith('nomeDoRelacionamento') */ $query->joinWith('macroprocessoAreas'); $query->innerJoin('AUT.AUT_SETORES', 'AUT.AUT_SETORES.ID = SGR_MACROPROCESSO_AREA.AREA_ID'); $query->andFilterWhere([ 'ID' => $this->ID, //A chave estrangeira precisa ser retirada //'MACROPROCESSO_ID' => $this->MACROPROCESSO_ID, ]);
$query->andFilterWhere(['like', 'UPPER(PROCESSO)', strtoupper($this->PROCESSO)]) ->andFilterWhere(['like', 'UPPER(SGR_MACROPROCESSO.MACROPROCESSO)', strtoupper($this->MACROPROCESSO_ID)]) ->andFilterWhere(['like', 'UPPER(AUT.AUT_SETORES.SIGLA)', strtoupper($this->AREA_ID)]); return $dataProvider; }
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/af7dbbdd-70ed-49d6-b1e2-10d5546afb27%40googlegroups.com.
[
0 => app\models\MacroprocessoArea#1
(
[yii\db\BaseActiveRecord:_attributes] => [
'MACROPROCESSO_ID' => '435'
'AREA_ID' => '127'
'PROCESSO_ID' => '482'
'SUBPROCESSO_ID' => '483'
]
[yii\db\BaseActiveRecord:_oldAttributes] => [
'MACROPROCESSO_ID' => '435'
'AREA_ID' => '127'
'PROCESSO_ID' => '482'
'SUBPROCESSO_ID' => '483'
]
[yii\db\BaseActiveRecord:_related] => []
[yii\base\Model:_errors] => null
[yii\base\Model:_validators] => null
[yii\base\Model:_scenario] => 'default'
[yii\base\Component:_events] => []
[yii\base\Component:_behaviors] => []
)
Tem um outro problema tb. Aí nesse case ele traz todos as areas relacionadas. No meu caso quero só 1 área.
Só pra lembrar minha pesquisa já tras os dados como eu preciso.
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/117a2693-4b79-4954-beda-240eee18deff%40googlegroups.com.
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/46c7f0eb-4e7d-402d-b172-0acc3fe7e03e%40googlegroups.com.
$query->select("A.SIGLA, SGR_PROCESSO.ID, SGR_PROCESSO.PROCESSO, SGR_PROCESSO.MACROPROCESSO_ID");
/** * Jaz um join com o relacionamento que exite no model. * Dessa forma traz somente o(s) campo(s) que interessam na query * Caso queira trazer tudo basta usar * $query->joinWith('nomeDoRelacionamento') */
$query->innerJoin('SGR_MACROPROCESSO_AREA MA', 'MA.PROCESSO_ID = SGR_PROCESSO.ID'); $query->innerJoin('AUT.AUT_SETORES A', 'A.ID = MA.AREA_ID'); $query->joinWith('macroprocesso');
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/f936b47b-d6f5-47db-aa0a-40a3989f2c27%40googlegroups.com.
Não Continua exibindo (não definido).Não sei mais oq fazer.
--
Yii Framework Brasil
#######################################################################
Ao solicitar ajuda:
1. Explique o problema ou dificuldade. Seja específico!
2. Explique o que você *já tentou fazer* para resolver a situação;
3. MOSTRE CÓDIGO, sempre que possível. Esta é uma lista de programação!
LEMBRE-SE: se você tiver preguiça até para formular sua pergunta os
participantes da lista terão "preguiça" de respondê-la.
#######################################################################
04/2011: Anexos foram autorizados em votação. Use com moderação!
.
-
--
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/6f2ae5a5-bef7-48a2-89af-87108280746f%40googlegroups.com.
<?php
use yii\helpers\Html;use kartik\grid\GridView;/* * Referência para kartik\grid\GridView */
/* @var $this yii\web\View *//* @var $searchModel app\models\ProcessoSearch *//* @var $dataProvider yii\data\ActiveDataProvider */
// Rachel
$this->title = 'Processos';$this->params['breadcrumbs'][] = $this->title;?><div class="processo-index"> <?php// \yii\helpers\VarDumper::dump($dataProvider, 30, true);// echo '<hr><br><hr>';// \yii\helpers\VarDumper::dump($searchModel, 30, true); echo GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'responsive' => true, 'hover' => true, 'resizableColumns' => false, 'columns' => [ [ 'label' => 'Área',
'attribute' => 'AREA_ID', 'value' => function($model) {
\yii\helpers\VarDumper::dump($model, 30, true); },// 'value' => 'macroprocesso.area.SIGLA',// 'value' => 'macroprocessoAreas.0.AREA_ID', 'headerOptions' => ['class' => 'col-sm-1 text-center'], 'contentOptions' => ['class' => 'text-center'], ], [ 'label' => 'Macroprocesso', 'attribute' => 'MACROPROCESSO_ID', 'value' => 'macroprocesso.MACROPROCESSO', ], 'PROCESSO',
[ 'class' => 'yii\grid\ActionColumn', 'header' => 'Ações', 'headerOptions' => ['class' => 'col-sm-1 text-center'], 'template' => '{view} {update} {delete}', 'contentOptions' => ['class' => 'text-center'], 'buttons' => [ 'delete' => function ($url, $model) { return Html::a('<span class="glyphicon glyphicon-trash text-danger"></span>', $url, [ 'title' => 'Deletar', 'data-confirm' => 'Deseja excluir o item: ' . $model->PROCESSO . '?', 'data-method' => 'POST' ]); } ], ], ], 'panel' => [ 'heading' => '<h3 class="panel-title">' . Html::encode($this->title) .'</h3>', 'type' => 'primary', 'footerOptions' => ['class' => 'panel-footer text-center'], ], 'toolbar'=> [ ['content' => Html::a('<span class="glyphicon glyphicon-plus"></span>', ['create'], [ 'type'=>'button', 'title'=>'Adicionar Novo Processo', 'class'=>'btn btn-primary', ]) . ' ' . Html::a('<span class="glyphicon glyphicon-repeat"></span>', ['index'], [ 'data-pjax' => 0, 'class'=>'btn btn-default', 'title'=>'Limpar Filtros', ]) ], '{toggleData}', ], ]); ?>
</div>