タクソノミーとその子用語について2つのリポジトリがあります。私はセットアップインターフェースなどを勉強し、それをきれいにして私のコントローラーから雄弁を取り除くためにいくつかのコードを使って作業しています。リレーションシップメソッドをリレーションシップモデルに適用する
エラーを発生させずに子関係にメソッドを適用する方法について頭を悩ましています。私はこれを学んで簡単に移動してくださいが、私は今までしようとしたすべてのiveのトラックを失って周りを回って周りを見渡すと明白な何かを逃して感じる。
MyController.php
TaxonomyInterface.php
interface TaxonomyInterface{
public function createTermFromSlug($term_name);
}
DBTaxonomyRepository
class DBTaxonomyRepository
extends AbstractDBRepository
implements TaxonomyInterface
{
protected $table = 'taxonomy';
public $timestamps = false;
public function term()
{
return $this->hasMany('App\Repositories\DBTaxonomyTermRepository', 'taxonomy_id', 'id');
}
/**
* Create term based on unique slug.
*
* @param $term_name
* @internal param $name
*/
public function createTermFromSlug($term_name)
{
$term = $this->firstOrCreate(array(
'slug' => str_slug($term_name)
));
$term->name = $term_name;
$term->save();
}
}
私は多くのことを試してきましたが、試行錯誤だけではそれを学ぶことができない基本的な何かを明確に欠いています。これは私が残した現在の状態です。
簡単に言えば、リポジトリメソッドをタームエンティティのタクソノミエンティティに適用して、コントローラからの雄弁を切り離したいと考えています。
これを抽象化して、さまざまな分類法を扱うさまざまなコントローラで再利用できるようにしたいと思います。
'AbstractDBRepository'はEloquentを拡張しますか? – user3158900
はい。 'Illuminate \ Database \ Eloquent \ Modelを使用します。 抽象クラスAbstractDBRepository extends Model' – Jimbo