モーフィングの多くの関係に大きく依存するパッケージを作成しています。いつものようにこのような関係を定義する必要があります:Laravel 5ダイナミックモーフィングメソッド
public function foos()
{
return $this->morphToMany('App\Models\Foo', 'barable');
}
これは明らかにうまく動作し、問題はありません。
これらの関係の多くは定義する必要があります。そして、私はそれらをループし、パッケージを簡単に構成できるように自動的に構築したいと思います。
私は次のことを試してみました:
public function __get($name)
{
if($name == 'foos') {
return $this->morphToMany('App\Models\Foo', 'barable');
}
}
これは、データを取得するクエリを開始しません。呼び出されますが、データは返されません。
__call関数は私にとっても論理的だったようですが、Laravelを壊すだけです。私が言うことができる限り、それはクラスで呼び出されているすべてを拾う。
もう1つの方法は、特性を含めることで、プログラマがこれらの関係をパブリッシュ可能ファイルに記入することですが、それは間違っていると感じます。
提案がありますか?