From d8f43dc2d6f3bdabf485baff4adb5221d2633c3c Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Sun, 28 Jun 2020 22:43:50 +0200 Subject: [PATCH] Fix on varieties and articles joints --- app/DataTables/Botanic/VarietiesDataTable.php | 6 ++++-- app/Models/Botanic/Variety.php | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/DataTables/Botanic/VarietiesDataTable.php b/app/DataTables/Botanic/VarietiesDataTable.php index 126dbb9f..859bb722 100644 --- a/app/DataTables/Botanic/VarietiesDataTable.php +++ b/app/DataTables/Botanic/VarietiesDataTable.php @@ -12,15 +12,17 @@ class VarietiesDataTable extends DataTable public function query(Variety $model) { - $model = $model::with('specie')->select('botanic_varieties.*'); + // $model = $model::with('specie')->withCount('Articles')->select('botanic_varieties.*'); + $model = $model::joinRelations('Specie')->select('botanic_varieties.*','botanic_species.name as specie_name')->withCount('Articles'); return self::buildQuery($model); } protected function getColumns() { return [ - Column::make('specie.name')->title('Espèce'), + Column::make('specie_name')->title('Espèce'), Column::make('name')->title('Nom'), + Column::make('articles_count')->title('Nb articles')->class('text-right'), self::makeColumnButtons(), ]; } diff --git a/app/Models/Botanic/Variety.php b/app/Models/Botanic/Variety.php index 54eb4ebb..0ac9f30c 100644 --- a/app/Models/Botanic/Variety.php +++ b/app/Models/Botanic/Variety.php @@ -6,10 +6,13 @@ use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia\HasMedia; use Spatie\MediaLibrary\HasMedia\HasMediaTrait; use Rinvex\Tags\Traits\Taggable; +use Fico7489\Laravel\EloquentJoin\Traits\EloquentJoin; class Variety extends Model implements HasMedia { use HasMediaTrait; + use EloquentJoin; + use Taggable; protected $guarded = ['id']; protected $table = 'botanic_varieties'; @@ -21,6 +24,6 @@ class Variety extends Model implements HasMedia public function Articles() { - return $this->belongsTo('App\Models\Shop\Article','id','model_id'); + return $this->hasMany('App\Models\Shop\Article','model_id','id'); } } \ No newline at end of file