Categoría Detalle Yii2 Variante 2
Pasos para crear la variante 2 de categoría detalle:
1.- Generar el crud de author_book
Model Class:
backend\modules\bookstore\models\AuthorBook\AuthorBook
Search Model Class:
backend\modules\bookstore\models\AuthorBook\AuthorBookSearch
Controller Class:
backend\modules\bookstore\controllers\AuthorBookController
View Path:
@backend/modules/bookstore/views/author-book
2.- Agregar una columna:
[
'attribute' => 'author_id',
'value' => 'author.name',
'group' => true, // enable grouping,
'groupedRow' => true, // move grouped column to a single grouped row
'groupOddCssClass' => 'kv-grouped-row', // configure odd group cell css class
'groupEvenCssClass' => 'kv-grouped-row', // configure even group cell css class
],
3.- Ir al modelo de Búsqueda y agregar
public $authorName;
public $bookName;
4.- En el modelo de búsqueda agregar en las rules
[['authorName', 'bookName'], 'safe'],
5.- Añadir encima de los filtros:
$query->innerJoin('book','book.id = author_book.book_id');
$query->innerJoin('author','author.id = author_book.author_id');
6.- Añadir el ordenar:
$dataProvider->setSort([
'defaultOrder' => [
'authorName' => SORT_ASC
],
'attributes' => [
'author_id',
'book_id',
'authorName' => [
'asc' => ['author.name' => SORT_ASC],
'desc' => ['author.name' => SORT_DESC],
],
'bookName' => [
'asc' => ['book.name' => SORT_ASC],
'desc' => ['book.name' => SORT_DESC],
],
]
]);
7.- Añadir los filtros:
$query->andFilterWhere([
'author_book.id' => $this->id,
'author_book.author_id' => $this->author_id,
'author_book.book_id' => $this->book_id,
]);
$query->andFilterWhere([
'LIKE','author.name', $this->authorName,
]);
$query->andFilterWhere([
'LIKE','book.name', $this->bookName,
]);
8.- Añadir las columnas:
[
'attribute' => 'authorName',
'label' => Yii::t('app', 'Author'),
'value' => 'author.name' ,
'group' => true,
],
[
'attribute' => 'bookName',
'value' => 'book.name' ,
'label' => Yii::t('app', 'Book'),
],
9.- Añadir en el mensaje:
'Author' => 'Autor',
'Book' => 'Libros',
'Author Books' => 'Autor Libros',
10.- Revisar la documentación en los ejemplos:
https://demos.krajee.com/group-grid
Pueden ver el funcionamiento en mi canal de YouTube:
https://youtu.be/kqeqTlF4Qns
https://youtu.be/kqeqTlF4Qns
Comentarios
Publicar un comentario