From 157edb6c1d6ecf07ed5578f8b3176eae710f557e Mon Sep 17 00:00:00 2001 From: Daniel Toro Nieto Date: Tue, 17 Apr 2018 16:24:46 +0200 Subject: [PATCH] Tabla detalles partidos --- db/druidkuma.sql | 24 +++++++++- models/DetallesPartidos.php | 92 +++++++++++++++++++++++++++++++++++++ models/Jugadores.php | 8 ++++ models/Partidos.php | 15 +++++- views/partidos/view.php | 12 +++++ 5 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 models/DetallesPartidos.php diff --git a/db/druidkuma.sql b/db/druidkuma.sql index bdaf068..6bcaa1d 100644 --- a/db/druidkuma.sql +++ b/db/druidkuma.sql @@ -73,7 +73,7 @@ CREATE TABLE jugadores , equipo_id bigint not null references equipos(id) ON DELETE NO ACTION ON UPDATE CASCADE - , url varchar(255) + , url varchar(255) ); --TABLA PARTIDOS-- @@ -96,6 +96,28 @@ CREATE TABLE partidos ,goles_visitante numeric(3) ); +--TABLA DEtalles_PARTIDOS -- +DROP TABLE IF EXISTS detalles_partidos CASCADE; +CREATE TABLE detalles_partidos +( + id bigserial primary key + , partido_id bigint not null references partidos(id) + ON DELETE NO ACTION + ON UPDATE CASCADE + , equipo_id bigint not null references equipos (id) + ON DELETE NO ACTION + ON UPDATE CASCADE + , minuto varchar(255) not null + , jugador_id bigint not null references jugadores(id) + ON DELETE NO ACTION + ON UPDATE CASCADE + , roja boolean default false + , amarilla boolean default false + , gol boolean default false + , autogol boolean default false +); + + --TABLA ROLES -- DROP TABLE IF EXISTS roles CASCADE; diff --git a/models/DetallesPartidos.php b/models/DetallesPartidos.php new file mode 100644 index 0000000..407c78f --- /dev/null +++ b/models/DetallesPartidos.php @@ -0,0 +1,92 @@ + null], + [['partido_id', 'equipo_id', 'jugador_id'], 'integer'], + [['roja', 'amarilla', 'gol', 'autogol'], 'boolean'], + [['minuto'], 'string', 'max' => 255], + [['equipo_id'], 'exist', 'skipOnError' => true, 'targetClass' => Equipos::className(), 'targetAttribute' => ['equipo_id' => 'id']], + [['jugador_id'], 'exist', 'skipOnError' => true, 'targetClass' => Jugadores::className(), 'targetAttribute' => ['jugador_id' => 'id']], + [['partido_id'], 'exist', 'skipOnError' => true, 'targetClass' => Partidos::className(), 'targetAttribute' => ['partido_id' => 'id']], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => 'ID', + 'partido_id' => 'Partido ID', + 'equipo_id' => 'Equipo ID', + 'minuto' => 'Minuto', + 'jugador_id' => 'Jugador ID', + 'roja' => 'Roja', + 'amarilla' => 'Amarilla', + 'gol' => 'Gol', + 'autogol' => 'Autogol', + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getEquipo() + { + return $this->hasOne(Equipos::className(), ['id' => 'equipo_id'])->inverseOf('detallesPartidos'); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getJugador() + { + return $this->hasOne(Jugadores::className(), ['id' => 'jugador_id'])->inverseOf('detallesPartidos'); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getPartido() + { + return $this->hasOne(Partidos::className(), ['id' => 'partido_id'])->inverseOf('detallesPartidos'); + } +} diff --git a/models/Jugadores.php b/models/Jugadores.php index 8d8f8de..26aac19 100644 --- a/models/Jugadores.php +++ b/models/Jugadores.php @@ -92,4 +92,12 @@ public function getPosicion() { return $this->hasOne(Posiciones::className(), ['id' => 'posicion_id'])->inverseOf('jugadores'); } + + /** + * @return \yii\db\ActiveQuery + */ + public function getDetallesPartidos() + { + return $this->hasMany(DetallesPartidos::className(), ['jugador_id' => 'id'])->inverseOf('jugador'); + } } diff --git a/models/Partidos.php b/models/Partidos.php index 5cc33c0..182d1f0 100644 --- a/models/Partidos.php +++ b/models/Partidos.php @@ -2,8 +2,6 @@ namespace app\models; -use Yii; - /** * This is the model class for table "partidos". * @@ -88,4 +86,17 @@ public function getLiga() { return $this->hasOne(Ligas::className(), ['id' => 'liga_id'])->inverseOf('partidos'); } + + public function getDetalles() + { + return $this->getDetallesPartidos()->orderBy('minuto ASC')->all(); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getDetallesPartidos() + { + return $this->hasMany(DetallesPartidos::className(), ['partido_id' => 'id'])->inverseOf('partido'); + } } diff --git a/views/partidos/view.php b/views/partidos/view.php index db628b5..61981c2 100644 --- a/views/partidos/view.php +++ b/views/partidos/view.php @@ -34,8 +34,20 @@ if ($model->estado == Equipos::FINALIZADO): ?>

goles_local ?? '0'?> - goles_visitante ?? '0' ?>

FINALIZADO

+ detalles as $key) : ?> +

+ jugador->nombre; ?> + roja) ? 'roja' : '' ?> + amarilla) ? 'amarilla' : '' ?> + gol) ? 'gol' : '' ?> + autogol) ? 'gol en propia' : ''?> + minuto . '\'' ?> +

+ +

POR JUGAR