SugarBean

出典: SugarForum.jp

SugarCRMの根幹を成すクラス。MVCにおけるM(モデル)の部分で、ビジネスロジックの単位となる。すべてのBeanクラスはこのSugarBeanを継承しており、SugarBeanはデータベースを扱うメソッドを提供する。(一種の「抽象クラス」であり、直接使用することはない。継承して使う)

目次

基本情報

解説

Sugarでは、ContactやAccountなど、SugarBeanを継承したクラスのオブジェクトをBeanと呼ぶ。Beanを呼び出すには、

require_once('modules/Contacts/Contact.php');
$obj = new Contact();
if ($obj->retrieve($id)){
  echo '呼び出したContactは'.$obj->last_name.'さんです。';
} else {
  echo '指定したidをもつレコードは存在しません';
}

といった具合に、newで作成し、retrieve()でデータベースから取り出す(上記はContactクラスの場合)。

新たに作ったオブジェクトを保存する場合は、

require_once('modules/Contacts/Contact.php');
$obj = new Contact();
$obj->last_name = '山田';
$obj->first_name = '太郎';
$obj->save();
echo '作成したContactのidは'.$obj->id.'です。';

このように、プロパティ(フィールド)に値をセットして、save()を呼び出す。

プロパティ

var $new_with_id = false;

Sugarが自動的に生成するユニークIDではなく、IDを自分で指定したいケースがある。例えば、既存システムとの互換性を確保したい場合や、顧客番号など既にユニークであることが保証されている場合など。そういった場合、$this->id = 'ユニークなID' といった具合に、独自IDを指定すれば良い。ただし、idを指定するだけでは、insertではなくupdate扱いになってしまうので、このnew_with_idプロパティを合わせてtrueにしておく必要がある。

var $update_date_modified = true;

レコードの値を一斉に書き換える場合等、更新日時を書き換えたくない場合は、このプロパティをfalseにしてから、save()メソッドを呼べば良い。

(執筆中)

メソッド

retrieve()

主キーを用いて、データベースからレコードを取得。データをBeanの各フィールドにセットする。

  • $id=-1 : 主キー
  • $encode=true :
  • $encode=true :
  • 戻り値 : 見つかった場合はオブジェクト自身($this)、見つからなかった場合はnull

retrieve_by_string_fields()

主キー以外のフィールドで検索して、レコードを取得する。

  • $fields_array : フィールド名と検索値のペア
  • $encode=true :
  • 戻り値 : 見つかった場合はオブジェクト自身($this)、見つからなかった場合はnull

get_full_list()

指定した検索条件に合うレコードをすべて取得する。

  • $order_by="" :
  • $where="" :
  • $check_dates=false :
  • $show_deleted=0 :

save()

レコードを保存する。既に存在するレコードの場合はUPDATE、新規の場合はINSERTクエリが実行される。

  • $check_notify=FALSE :


継承して使用するメソッド

以下は、継承クラスでオーバーライドして使うことが想定されているメソッド。

get_summary_text()

レコードのサマリを返す。主に作業履歴に表示される。

fill_in_additional_list_fields()

fill_in_additional_detail_fields()

get_list_view_data()

リストビューでデータを表示する直前に呼ばれるメソッド。表示内容を調整することが可能。

bean_implements()

主にACLによる制御についてコードする。

  • $interface :

最終更新 10:31, 2010年4月15日 (木)。   このページは 4,840 回アクセスされました。