\Model_Company

ネクストエンジンの企業情報を保持するモデル

クラス名とテーブル名の命名規約

クラス名とテーブル名を縛ることで、命名規約に則りさえすれば、楽にモデルのコードを書くことが出来る。

FuelPHPのモデルクラスはModel_*となるので、model_を取り払った*を複数形にしたものがテーブル名となる。

ex) Model_Base => 'bases', Model_Test => 'tests', Model_HogeHoge => 'hogehoges'

プロパティ名とカラム名の命名規約

Model_Baseは、ignoreSaveKeyプロパティに指定されていないプロパティ名は、自動的に保存しようとします。 なので、DBのカラム名とモデルのプロパティは必ず一致させてください。 また、カラムなのかモデルのプロパティなのか、明確に分けるための命名規約が以下のとおりです。

種類 命名規則
DBのカラム スネークケース
モデルのプロパティ キャメルケース

と命名規則を分けてください。 Model_Baseで言えば、id, created_at, updated_atがカラム名(スネークケース) validationErrors, ignoreSaveKeyがモデルのプロパティ(キャメルケース)です。

Summary

Methods
Properties
Constants
__construct()
validate()
isNew()
insert()
update()
delete()
save()
toArray()
forge()
create()
find()
findAll()
findBy()
findLike()
count()
actionInTransaction()
_getTableName()
$main_function_id
$platform_id
$id
$created_at
$updated_at
No constants found
runValidate()
before_save()
before_insert()
before_update()
before_delete()
before_validate()
after_find()
after_save()
after_insert()
after_update()
after_delete()
after_validate()
hook()
transactionDo()
$primaryKey
$validationErrors
$ignoreSaveKey
N/A
No private methods found
No private properties found
N/A

Properties

$main_function_id

$main_function_id : string

`メイン機能企業ID`を保持するカラム

Type

string

$platform_id

$platform_id : string

`ネクストエンジン企業ID`を保持するカラム

Type

string

$id

$id : string

カラムのID

Type

string

$created_at

$created_at : string

DBへの挿入日時

Type

string

$updated_at

$updated_at : string

データの更新日時

Type

string

$primaryKey

$primaryKey : string

findで比較に用いる主キー

Type

string

$validationErrors

$validationErrors : array

バリデーション時のエラー情報を格納

Type

array

$ignoreSaveKey

$ignoreSaveKey : array<mixed,string>

保存時に除外するプロパティ

ここに指定していないプロパティは、全て保存処理がされてしまうので注意。 NOTE: updated_atは自動更新するので触らない(on UPDATE on update CURRENT_TIMESTAMPが設定されている)

Type

array<mixed,string>

Methods

__construct()

__construct(array  $data = array()) : void

key-valueの連想配列が与えられていたら、そのプロパティに値を代入する。

Parameters

array $data

データの配列(省略可)

validate()

validate() : boolean

データの妥当性をチェックする。

Returns

boolean —

バリデーションに成功したらtrue。エラーがあればfalseを返し、validationErrorsにエラーメッセージを格納する

isNew()

isNew() : boolean

DBに未挿入のデータか否かをチェックする。

Returns

boolean —

DBに未挿入のデータならtrue、DBに挿入済みのデータならfalse

insert()

insert(boolean  $insert_ignore = false) : boolean

データをDBに挿入する。

NOTE: データの検証は行わないので、事前にvalidateで入力チェックをしておくこと。

Parameters

boolean $insert_ignore

INSERT IGNOREを使用するか否か(trueなら使用、falseは不使用)

Returns

boolean

update()

update() : boolean

データのDB上の更新を行う。

NOTE: データの検証は行わないので、事前にvalidateで入力チェックをしておくこと。

Returns

boolean

delete()

delete() : boolean

物理削除(行をDB上から消す)を行う

Returns

boolean

save()

save(array<mixed,string>  $columns = array()) : boolean

モデルを保存or更新する

saveメソッドは、INSERT ~ ON DEPLICATE KEY UPDATE文を実行する。

UNIQUE インデックスか PRIMARY KEY 内で複製値を引き起こす行が挿入されると、古い行の UPDATE が実行されます。 — 公式ドキュメント

とあるように、重複行がないと更新されずに新規更新される。

NOTE: ignoreSaveKeyの都合上idは保存対象外となっているため、idのみがUNIQUEなテーブルでは使用できません。 NOTE: MySQL構文のため、MySQL以外のDBでsaveメソッドを使用することは出来ません。

Parameters

array<mixed,string> $columns

挿入または更新するカラム名を指定。省略された場合は定義されている全てのプロパティを挿入/更新する

Returns

boolean —

挿入or削除に成功したらtrue, 失敗したらfalse

toArray()

toArray() : array

インスタンスを連想配列に変換する

Returns

array

forge()

forge(array  $data = array()) : \Base\Model_Crud

Forges new Model_Crud objects.

Parameters

array $data

Model data

Returns

\Base\Model_Crud

create()

create(array  $columns, array  $values) : array

NOTE: 仕様変更される恐れがあります。 複数の値を与えて、DBにinsertを行う。

sample

Model_Base::create(array(
    'username',
    'password',
),
array(
    array('hogehoge', 'hugahuga', 'foooooooooo'),
    array('foobar',   'hige',     'fizzbuzz'),
));

なぜkey-valueの連想配列を与えないのか

PHPの連想配列はメモリをとても食うため、配列のみで済ましたい。よって第1,第2引数がややこしくなっています。ご了承ください

Parameters

array $columns

カラム名を列挙した配列。ここで指定したカラム順にvaluesを設定する。

array $values

値の列挙。1つ1つのカラムに挿入する値を配列で指定する。

Returns

array —

挿入されたインスタンスの配列

find()

find(integer  $id) : mixed

指定されたIDのデータのみ取得する

Parameters

integer $id

取得したいデータのID

Returns

mixed —

指定されたIDが見つかればモデルのインスタンス、無ければnull

findAll()

findAll() : array

テーブル内のデータを全件取得する

Returns

array —

テーブル全行のデータをインスタンス化した要素の配列、1件もデータがない場合は空配列

findBy()

findBy(string  $column, string  $value, string  $operator = '=') : array

条件を1つ指定しデータを取得する

Parameters

string $column

検索に使用するカラム名

string $value

一致させたい値

string $operator

使用する演算子(デフォルトは'=')

Returns

array —

条件にマッチした行をインスタンス化した要素の配列

findLike()

findLike(string  $column, string  $value) : array

LIKE演算子を利用してfindByを行う

Parameters

string $column

検索に使用するカラム名

string $value

部分一致させたい値

Returns

array —

条件にマッチした行をインスタンス化した要素の配列

count()

count(string  $column = null, boolean  $distinct = true, array  $where = array(), string  $group_by = null) : integer

FuelPHPのModel_Crudから持ってきて、このクラス用に改造しました。

Count all of the rows in the table.

Parameters

string $column

Column to count by

boolean $distinct

Whether to count only distinct rows (by column)

array $where

Query where clause(s)

string $group_by

Column to group by

Returns

integer —

The number of rows OR false

actionInTransaction()

actionInTransaction(array<mixed,\Base\Model_Base>  $inserts, array<mixed,\Base\Model_Base>  $updates = array(), array<mixed,\Base\Model_Base>  $saves = array(), array<mixed,\Base\Model_Base>  $deletes = array()) : boolean

INSERT, UPDATE, INSERT or UPDATE, DELETEを同一トランザクション配下で行う

NOTE: 同一アクション(insertやupdate)の中の順序は指定できるが、アクション自体の実行順は指定できないことに注意。 必ずinsert(), update(), save(), delete()の順でモデルが存在するだけ実行される。

Parameters

array<mixed,\Base\Model_Base> $inserts

insert()を呼び出したいModel_Baseのインスタンスの配列

array<mixed,\Base\Model_Base> $updates

update()を呼び出したいModel_Baseのインスタンスの配列

array<mixed,\Base\Model_Base> $saves

save()を呼び出したいModel_Baseのインスタンスの配列

array<mixed,\Base\Model_Base> $deletes

delete()を呼び出したいModel_Baseのインスタンスの配列

Throws

\Base\Database_Exception

Returns

boolean —

全て成功すればtrue, どれか1つ以上が失敗したらfalse

_getTableName()

_getTableName() : string

モデルのクラス名からテーブル名を取得する クラス上部の説明にある命名規則を参照。

Returns

string —

クラス名を小文字かつ複数形にしたテーブル名

runValidate()

runValidate() : boolean

バリデーションを行う実体部。ここをオーバーライドすれば任意のバリデーションを書ける

Returns

boolean

before_save()

before_save() : void

挿入/更新処理の直前に実行できるフック

insert, update, saveメソッドでコールされる。

before_insert()

before_insert() : void

挿入処理の直前に実行できるフック

insertメソッドでコールされる。

before_update()

before_update() : void

更新処理の直前に実行できるフック

updateメソッドでコールされる。

before_delete()

before_delete() : void

削除処理の直前に実行できるフック

deleteメソッドでコールされる。

before_validate()

before_validate() : void

バリデーション処理の直前に実行できるフック

validateメソッドでコールされる。

after_find()

after_find(mixed  $record) : array

find処理の直後に実行できるフック

find, findBy, findLikeでコールされる。 このメソッドの戻り値が、findメソッドの戻り値として使用されるので扱いに要注意。 このメソッドだけstaticなので要注意。

Parameters

mixed $record

インスタンスの配列

Returns

array

after_save()

after_save(boolean  $success) : void

保存処理の直後に実行できるフック

insert, update, saveメソッドでコールされる。

Parameters

boolean $success

保存に成功したらtrue

after_insert()

after_insert(boolean  $success) : void

挿入処理の直後に実行できるフック

insertメソッドでコールされる。

Parameters

boolean $success

挿入に成功したらtrue

after_update()

after_update(boolean  $success) : void

更新処理の直後に実行できるフック

updateメソッドでコールされる。

Parameters

boolean $success

更新に成功したらtrue

after_delete()

after_delete(boolean  $success) : void

削除処理の直後に実行できるフック

deleteメソッドでコールされる。

Parameters

boolean $success

削除に成功したらtrue

after_validate()

after_validate(boolean  $success) : void

バリデーション処理の直後に実行できるフック

validateメソッドでコールされる。

Parameters

boolean $success

バリデーションに通過したらtrue

hook()

hook(string  $hook_name) : mixed

フックをコールするためのメソッド

Parameters

string $hook_name

実行するフック名

Returns

mixed —

フックの戻り値

transactionDo()

transactionDo(\Base\Clusure  $callback) : mixed

トランザクションを張りその中で処理を実行する

使用例についてはactionInTransactionメソッドを参照

Parameters

\Base\Clusure $callback

トランザクション内で実行する処理

Returns

mixed —

コールバック関数の戻り値、途中でcatchされたらfalse