From a133967282e281c659c772739fdf9cabef29bdcc Mon Sep 17 00:00:00 2001 From: S170H <64917343+S170H@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:59:27 +0100 Subject: [PATCH] M6 Nr3 3a)&c) --- .../app/Http/Controllers/MainController.php | 29 +++++++---- M6/emensamobile/app/Models/Gericht.php | 6 ++- M6/emensamobile/app/Models/Gerichte.php | 2 + M6/emensamobile/app/Models/bewertungen.php | 51 +++++++++++-------- .../resources/views/main/bewertung.blade.php | 7 +-- .../resources/views/main/index.blade.php | 8 +-- 6 files changed, 63 insertions(+), 40 deletions(-) diff --git a/M6/emensamobile/app/Http/Controllers/MainController.php b/M6/emensamobile/app/Http/Controllers/MainController.php index 2aa10d4..07029c1 100644 --- a/M6/emensamobile/app/Http/Controllers/MainController.php +++ b/M6/emensamobile/app/Http/Controllers/MainController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; use App\Models\bewertungen; +use App\Models\Gericht; use Illuminate\Routing\Controller as BaseController; use App\Models\Gerichte; use Illuminate\Http\Request; @@ -46,18 +47,22 @@ class MainController extends BaseController if ($data["gerichtid"] != null) { - $gericht = new Gerichte(); - $g = $gericht->db_gericht_bewertung($data["gerichtid"]); + $gericht = Gericht::query()->find($data["gerichtid"]); + $gerichtName = $gericht->getGerichtName(); + $bildname = $gericht->getBildname(); + return view('main.bewertung', [ - "gericht" => $g, + "gerichtName" => $gerichtName, + "bildname" => $bildname, "data" => $data, 'url' => 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}" ]); } } + $b = new bewertungen(); - $bewertungen = $b->bewertungen(); + $bewertungen = $b->getBewertungen(); return view('main.bewertung', [ "bewertungen" => $bewertungen, @@ -75,11 +80,17 @@ class MainController extends BaseController $bemerkung = $data["bemerkung"] ?? NULL; $benutzer = session("benutzer_id",0); + bewertungen::query()->firstOrCreate( + [ + 'ersteller_id' => $benutzer, + 'gericht_id' => $id, + 'bemerkung' => $bemerkung, + 'sterne' => $sterne + ] + ); $b = new bewertungen(); - $check = $b->bewerten($benutzer,$id,$sterne, $bemerkung); - - $bewertungen = $b->bewertungen(); + $bewertungen = $b->getBewertungen(); return view('main.bewertung', [ "bewertungen" => $bewertungen, @@ -108,13 +119,13 @@ class MainController extends BaseController $data = $rd; if ($data["loschen"] != null) { - $check = $b->loschen($data["loschen"]); + $check = $b->deleteMeineBewertung($data["loschen"]); } } - $meine = $b->meine_bewertungen($benutzer_id); + $meine = $b->getMeineBewertungen($benutzer_id); return view('main.meine_bewertungen', [ "check" => $check, diff --git a/M6/emensamobile/app/Models/Gericht.php b/M6/emensamobile/app/Models/Gericht.php index b140b93..de68bd3 100644 --- a/M6/emensamobile/app/Models/Gericht.php +++ b/M6/emensamobile/app/Models/Gericht.php @@ -24,10 +24,14 @@ class Gericht extends Model { return number_format($unformatted, 2, ','); } - function getBildname (){ + function getBildname(){ return $this->attributes['bildname']; } + function getGerichtName(){ + return $this->attributes['name']; + } + function setVegetarischAttribut($value){ if ($value == 1 || $value == 0){ $this->attributes['vegetarisch'] = $value; diff --git a/M6/emensamobile/app/Models/Gerichte.php b/M6/emensamobile/app/Models/Gerichte.php index 6877e2f..2f008df 100644 --- a/M6/emensamobile/app/Models/Gerichte.php +++ b/M6/emensamobile/app/Models/Gerichte.php @@ -74,12 +74,14 @@ class Gerichte extends Model { } + // Überflüssig function db_gericht_bewertung(int $id){ $sql_gerichte = "SELECT gericht.name, gericht.bildname FROM gericht WHERE id =". $id; $result_sql_gerichte = DB::select($sql_gerichte); return $result_sql_gerichte; } + //Überflüssig function db_gericht_name(int $id){ $sql_gerichte = "SELECT gericht.name FROM gericht WHERE id =". $id; $result_sql_gerichte = DB::select($sql_gerichte); diff --git a/M6/emensamobile/app/Models/bewertungen.php b/M6/emensamobile/app/Models/bewertungen.php index 74b1ff8..8a2c52f 100644 --- a/M6/emensamobile/app/Models/bewertungen.php +++ b/M6/emensamobile/app/Models/bewertungen.php @@ -8,56 +8,65 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Session; -class bewertungen extends Model -{ +class bewertungen extends Model { + protected $table = 'bewertungen'; + protected $primaryKey = 'id'; + public $incrementing = true; + protected $attributes = [ + 'hervorgehoben' => 0 + ]; + public $fillable = [ + 'ersteller_id', + 'gericht_id', + 'bemerkung', + 'sterne' + ]; + + public $timestamps = false; + use HasFactory; - function bewerten(int $ersteller, int $gericht, int $sterne, string $bemerkung){ - $sql = "INSERT INTO bewertungen (ersteller_id,gericht_id,bemerkung,sterne,hervorgehoben) VALUES (".$ersteller. ",". $gericht.",\"". $bemerkung."\",".$sterne.",0);"; - - DB::insert($sql); - - return 1; - } - - function bewertungen(){ + function getBewertungen() + { $sql_bewertungen = "SELECT bewertungen.gericht_id, bewertungen.sterne, bewertungen.bemerkung FROM bewertungen ORDER BY bewertungen.erstellungsdatum LIMIT 30"; $result_sql_bewertungen = DB::select($sql_bewertungen); $result = []; foreach ($result_sql_bewertungen as $row) { - $sql = "SELECT gericht.name FROM gericht WHERE gericht.id=". $row->gericht_id; - array_push($result,[DB::select($sql),$row->sterne,$row->bemerkung]); + $sql = "SELECT gericht.name FROM gericht WHERE gericht.id=" . $row->gericht_id; + array_push($result, [DB::select($sql), $row->sterne, $row->bemerkung]); } return $result; } - function meine_bewertungen(int $id){ - $sql_bewertungen = "SELECT bewertungen.gericht_id, bewertungen.id ,bewertungen.sterne, bewertungen.bemerkung FROM bewertungen WHERE bewertungen.ersteller_id =". $id." ORDER BY bewertungen.erstellungsdatum"; + function getMeineBewertungen(int $id) + { + $sql_bewertungen = "SELECT bewertungen.gericht_id, bewertungen.id ,bewertungen.sterne, bewertungen.bemerkung FROM bewertungen WHERE bewertungen.ersteller_id =" . $id . " ORDER BY bewertungen.erstellungsdatum"; $result_sql_bewertungen = DB::select($sql_bewertungen); $result = []; foreach ($result_sql_bewertungen as $row) { $sql = "SELECT gericht.name FROM gericht WHERE gericht.id=" . $row->gericht_id; - array_push($result, [DB::select($sql), $row->sterne, $row->bemerkung,$row->id]); + array_push($result, [DB::select($sql), $row->sterne, $row->bemerkung, $row->id]); } - return $result; + return $result; } - function loschen(int $id){ - $sql_bewertungen = "SELECT bewertungen.ersteller_id FROM bewertungen WHERE bewertungen.id =". $id; + function deleteMeineBewertung(int $id) + { + $sql_bewertungen = "SELECT bewertungen.ersteller_id FROM bewertungen WHERE bewertungen.id =" . $id; $result_sql_bewertungen = DB::select($sql_bewertungen); - if($result_sql_bewertungen[0]->ersteller_id != session("benutzer_id",0)){ + if ($result_sql_bewertungen[0]->ersteller_id != session("benutzer_id", 0)) { return 0; } - $sql_bewertungen = "DELETE FROM bewertungen WHERE bewertungen.id = ".$id; + $sql_bewertungen = "DELETE FROM bewertungen WHERE bewertungen.id = " . $id; DB::delete($sql_bewertungen); return 1; diff --git a/M6/emensamobile/resources/views/main/bewertung.blade.php b/M6/emensamobile/resources/views/main/bewertung.blade.php index c0a8c31..5366fa8 100644 --- a/M6/emensamobile/resources/views/main/bewertung.blade.php +++ b/M6/emensamobile/resources/views/main/bewertung.blade.php @@ -37,11 +37,8 @@ {{$id = $data["gerichtid"]}} @endif - @if(isset($gericht)) + @if(isset($gerichtName, $bildname)) bildname; if ($bildname == Null) { $bildname = "00_image_missing.jpg"; @@ -59,7 +56,7 @@ Bild vom Gericht
-

{{$gericht->name}}

+

{{$gerichtName}}

diff --git a/M6/emensamobile/resources/views/main/index.blade.php b/M6/emensamobile/resources/views/main/index.blade.php index e8b8ea3..6416802 100644 --- a/M6/emensamobile/resources/views/main/index.blade.php +++ b/M6/emensamobile/resources/views/main/index.blade.php @@ -76,10 +76,10 @@ foreach ($result_sql_gerichte as $row_gerichte) { - $preisintern = number_format($row_gerichte->preisintern, 2, ',', '.'); - $preisextern = number_format($row_gerichte->preisextern, 2, ',', '.'); - - $bildname = $row_gerichte->bildname; + $gericht = \App\Models\Gericht::query()->find($row_gerichte->id); + $preisintern = $gericht->getPreisIntern(); + $preisextern = $gericht->getPreisExtern();; + $bildname = $gericht->getBildName(); if ($bildname == Null) { $bildname = "00_image_missing.jpg";