2016-12-24 19 views
1

ベンダークラスはどのように上書きできますか? 私はLaravel Sparkを使用しており、すべてのモデルでUuidを使用したいと考えています。 Due Sparkはパッケージ内のいくつかのモデルを管理しています。私は自分のモデルをNotificationsなどに使用することはできません。ベースモデルクラスをIlluminate\Database\Eloquent\Modelから上書きしたいので、私のuuid特性を含めることができます。ベンダークラスを上書きする方法

私はとのServiceProvider上で試してみました:

public function boot() 
{ 
    // 
    $this->app->bind('Illuminate\Database\Eloquent\Model', 'App\Models\Model'); 
} 

しかし、それは働いていませんでした。

もっと良い方法がありますか?

ありがとうございました。

+0

「私は自分のモデルをNotificationsなどに使用することはできませんが、私は基本モデルクラスを上書きしたいと思います...」という理由を説明する必要があります。通知モデルがスパークパッケージからのものであるため、 – prateekkathal

+0

です。だから私は調整することはできません(または、どのように)それがパッケージ内にある原因を知らないか、または上書きすることはできません – mastercheef85

答えて

0

雄弁なモデルを拡張するカスタムモデルクラスを作成します。

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class CustomModel extends Model { 
    // Your implementation 
} 

残りのモデルを拡張すると、カスタムモデルが拡張されます。

class Test extends CustomModel { 
} 
+0

通知モデルと同様にユーザーなどのような他のものはすでにベースモデルを拡張しています。 – mastercheef85

+0

@ mastercheef85私はあなたの懸念を理解しています。私はhttps://medium.com/@steveazz/setting-up-uuids-in-laravel-5-552412db2088#.74yoc66t5オンラインで見つけました。これをチェックしましたか? –

+0

ありがとう、しかし、私はそれを知っている。問題はUUID自体ではなく、モデル上で使用しているため、ベンダーがパッケージを起動するという問題があります。通知と他のモデルを持つモデルは、フレームワークのデフォルトの雄弁モデルを使用します。私はベンダーのモデルを変更することはできませんので、自動的にすべてのモデルが拡張された特性を使用するデフォルトの雄弁なモデルを上書きしたいと思います。 – mastercheef85

関連する問題