2016-12-21 2 views
1

こんにちは私は10月のCMSに新しく、私はちょうどUserクラスで始めました。私はlaravelで関係を作成するのがとても簡単だと知っています。10月CMS:関係を追加するためにユーザークラスを拡張する方法?

私は拡張されたユーザーの突っ込みを持っています。

User::hasCountry()->get(); 

    public hasCountry($query){ 
     return $query->where('country',1); 
    } 

私はこの関係を作成しましたが、拡張ユーザークラスに追加する方法はわかりません。私は一つの解決

public function boot() 
{ 
    User::extend(function($model) { 
     $model->addDynamicMethod('hasCountry', function($query) { 
      return $query->where('country', 1); 
     }); 
    }); 
} 

を発見した。しかし、それは、拡張またはMethodeのを追加していません。

助けてください:)

+0

は同じ表の国または国には独自のモデルがありますか? –

+0

国は「国」という別のモデルです –

答えて

0

私は示唆されたアプローチを読んでいます。私が正しく理解していれば、このアイデアはOctoberCMSのインストールのコードベースを変更するでしょう。これはOKではなく、新しい10月のアップデートがあなたのアプリにプッシュされると大惨事を引き起こす可能性があります。

理由だけではなく、backend_userテーブルを使用して新しいモデルを作成し、あなたが望むすべての関係を追加しませんか?最もフレキサビリティを提供するように思われる

use Model; 

/** 
* Model 
*/ 
class EnhancedUser extends Model 
{ 
    /** 
    * @var string The database table used by the model. 
    */ 
    public $table = 'backend_users';  

    public $hasOne = [ 
     'Country' => 'Acme\Blog\Models\Country' //path of your country model 
    ]; 
} 

私はOctoberCMSであなたのアプリケーションに機能を追加するための正しい方法は、にあると考えているカスタムプラグインを作成し、IMO:

例。

あなたのEnhancedUserモデルは、この使用のインスタンスベースに現在のユーザーを取得する必要がある場合:BTW

BackendAuth::getUser(); //Returns the authenticated user 

をOctoberCMS用のカスタムプラグインを構築するために学習するとき、私はこれらのリソースは素晴らしいが見つかりました:

  1. (私の個人的な好意とThe Lazy Man's Way) https://vimeo.com/154415433

  2. : "ビルダー" プラグインをインストールして、ここに行くと[操作方法]ビデオを見る:

    プラグイン: http://octobercms.com/plugin/rainlab-builder

    ビデオ文書 http://octobercms.com/docs/plugin/registration

関連する問題