laravel で共通の関係を使用して単一のファイルに書き込み、その関係が必要なモデルでそのクラスを拡張するにはどうすればよいでしょうか。
モデル「Court」をご覧ください。
use Illuminate\Database\Eloquent\Model;
use Astrotomic\Translatable\Translatable;
use TranslatableContract;
class Court extends Model implements TranslatableContract
{
use Translatable;
public $translatedAttributes = ['title', 'description'];
public $fillable = ['court_type_id', 'state_id', 'city_id'];
public function courtType()
{
return $this->belongsTo('App\CourtType', 'court_type_id');
}
public function state()
{
return $this->belongsTo('App\State');
}
public function city()
{
return $this->belongsTo('App\City');
}
}
別のモデル「CourtCase」
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Astrotomic\Translatable\Translatable;
use TranslatableContract;
class CourtCase extends Model implements TranslatableContract
{
use Translatable;
public $translatedAttributes = ['case_id', 'title', 'description'];
public $fillable = ['court_id', 'state_id', 'city_id'];
public function userable()
{
return $this->morphTo();
}
public function images()
{
return $this->morphMany('App\Image', 'imageable');
}
public function state()
{
return $this->belongsTo('App\State');
}
public function city()
{
return $this->belongsTo('App\City');
}
}
ここで上記のモデルには、都市、州という名前の 2 つのリレーションがあり、コードの繰り返しを許可する各モデルで共通です。これらのリレーションを 1 つのファイルに記述し、特定のモデルでそれを拡張するにはどうすればよいでしょうか。