0 フォロワー

インターフェース yii\db\ActiveRecordInterface

拡張yii\base\StaticInstanceInterface
実装者yii\db\ActiveRecord, yii\db\BaseActiveRecord
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveRecordInterface.php

ActiveRecordInterface.

パブリックメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
attributes() レコードのすべての属性名のリストを返します。 yii\db\ActiveRecordInterface
delete() データベースからレコードを削除します。 yii\db\ActiveRecordInterface
deleteAll() 指定された条件を使用してレコードを削除します。 yii\db\ActiveRecordInterface
equals() 与えられたアクティブレコードが現在のものと同じかどうかを示す値を返します。 yii\db\ActiveRecordInterface
find() クエリの目的でyii\db\ActiveQueryInterfaceインスタンスを作成します。 yii\db\ActiveRecordInterface
findAll() 指定されたプライマリキーの値または一連の列の値に一致するアクティブレコードモデルのリストを返します。 yii\db\ActiveRecordInterface
findOne() プライマリキーまたは列の値の配列で、単一のアクティブレコードモデルインスタンスを返します。 yii\db\ActiveRecordInterface
getAttribute() 指定された属性値を返します。 yii\db\ActiveRecordInterface
getDb() このARクラスで使用される接続を返します。 yii\db\ActiveRecordInterface
getIsNewRecord() 現在のレコードが新しい(データベースに保存されていない)かどうかを示す値を返します。 yii\db\ActiveRecordInterface
getOldPrimaryKey() 古いプライマリキーの値を返します。 yii\db\ActiveRecordInterface
getPrimaryKey() プライマリキーの値を返します。 yii\db\ActiveRecordInterface
getRelation() 指定された名前のリレーションオブジェクトを返します。 yii\db\ActiveRecordInterface
hasAttribute() レコードに指定された名前の属性があるかどうかを示す値を返します。 yii\db\ActiveRecordInterface
insert() このレコードの属性値を使用して、レコードをデータベースに挿入します。 yii\db\ActiveRecordInterface
instance() メタ情報を取得するために使用できる静的クラスインスタンスを返します。 yii\base\StaticInstanceInterface
isPrimaryKey() 指定された属性のセットがこのモデルのプライマリキーを表しているかどうかを示す値を返します。 yii\db\ActiveRecordInterface
link() 2つのレコード間の関係を確立します。 yii\db\ActiveRecordInterface
populateRelation() 関連レコードで指定された名前のリレーションを設定します。 yii\db\ActiveRecordInterface
primaryKey() このARクラスのプライマリキーを返します。 yii\db\ActiveRecordInterface
save() 現在のレコードを保存します。 yii\db\ActiveRecordInterface
setAttribute() 指定された属性値を設定します。 yii\db\ActiveRecordInterface
unlink() 2つのレコード間の関係を破棄します。 yii\db\ActiveRecordInterface
update() このアクティブレコードへの変更をデータベースに保存します。 yii\db\ActiveRecordInterface
updateAll() 指定された属性値と条件を使用してレコードを更新します。 yii\db\ActiveRecordInterface

メソッド詳細

継承されたメソッドを非表示

attributes() public abstract method

レコードのすべての属性名のリストを返します。

public abstract array attributes ( )
戻り値 array

属性名のリスト。

                public function attributes();

            
delete() public abstract method

データベースからレコードを削除します。

public abstract integer|boolean delete ( )
戻り値 integer|boolean

削除された行数、または何らかの理由で削除が失敗した場合はfalse。削除の実行が成功した場合でも、削除された行数が0になる可能性があることに注意してください。

                public function delete();

            
deleteAll() public abstract static method

指定された条件を使用してレコードを削除します。

警告:条件を指定しない場合、このメソッドはテーブル内のすべての行を削除します。

たとえば、ステータスが3のすべての顧客を削除するには

Customer::deleteAll([status = 3]);
public abstract static integer deleteAll ( $condition null )
$condition array|null

削除対象のレコードに一致する条件。このパラメータの指定方法については、yii\db\QueryInterface::where()を参照してください。空の条件はすべてのレコードに一致します。

戻り値 integer

削除された行数

                public static function deleteAll($condition = null);

            
equals() public abstract method

与えられたアクティブレコードが現在のものと同じかどうかを示す値を返します。

2つの新しいレコードは等しくないものと見なされます。

public abstract boolean equals ( $record )
$record static

比較対象のレコード

戻り値 boolean

2つのアクティブレコードが同じデータベーステーブルの同じ行を参照しているかどうか。

                public function equals($record);

            
find() public abstract static method

クエリの目的でyii\db\ActiveQueryInterfaceインスタンスを作成します。

返されたyii\db\ActiveQueryInterfaceインスタンスは、yii\db\ActiveQueryInterfaceで定義されているメソッドを呼び出すことで、さらにカスタマイズできます。たとえば、one()またはall()が呼び出されて、アクティブなレコードインスタンスが設定される前に。

// find the customer whose ID is 1
$customer = Customer::find()->where(['id' => 1])->one();

// find all active customers and order them by their age:
$customers = Customer::find()
    ->where(['status' => 1])
    ->orderBy('age')
    ->all();

このメソッドは、リレーショナルクエリを作成するために、yii\db\BaseActiveRecord::hasOne() および yii\db\BaseActiveRecord::hasMany() によっても呼び出されます。

このメソッドをオーバーライドして、カスタマイズされたクエリを返すことができます。たとえば、

class Customer extends ActiveRecord
{
    public static function find()
    {
        // use CustomerQuery instead of the default ActiveQuery
        return new CustomerQuery(get_called_class());
    }
}

次のコードは、すべてのクエリにデフォルトの条件を適用する方法を示しています。

class Customer extends ActiveRecord
{
    public static function find()
    {
        return parent::find()->where(['deleted' => false]);
    }
}

// Use andWhere()/orWhere() to apply the default condition
// SELECT FROM customer WHERE `deleted`=:deleted AND age>30
$customers = Customer::find()->andWhere('age>30')->all();

// Use where() to ignore the default condition
// SELECT FROM customer WHERE age>30
$customers = Customer::find()->where('age>30')->all();
public abstract static yii\db\ActiveQueryInterface find ( )
戻り値 yii\db\ActiveQueryInterface

新しく作成された yii\db\ActiveQueryInterface インスタンス。

                public static function find();

            
findAll() public abstract static method

指定されたプライマリキーの値または一連の列の値に一致するアクティブレコードモデルのリストを返します。

このメソッドは以下を受け入れます。

  • スカラー値(整数または文字列):単一のプライマリキー値でクエリを実行し、対応するレコードを含む配列を返します(見つからない場合は空の配列)。
  • 非連想配列:プライマリキー値のリストでクエリを実行し、対応するレコードを返します(見つからない場合は空の配列)。空の条件は、空の `WHERE` 条件ではなく、プライマリキーの検索として解釈されるため、空の結果になることに注意してください。
  • 名前と値のペアの連想配列:属性値のセットでクエリを実行し、それらすべてに一致するレコードの配列を返します(見つからない場合は空の配列)。 `['id' => 1, 2]` は非連想配列として扱われることに注意してください。カラム名は、SQL DBMS の場合は現在のレコードテーブルのカラムに限定されるか、そうでない場合は単純なフィルタ条件に限定されるようにフィルタリングされます。
  • yii\db\Expression:式は直接使用されます。(@since 2.0.37)

このメソッドは自動的に all() メソッドを呼び出し、ActiveRecord インスタンスの配列を返します。

注意:これは簡略化されたメソッドであるため、 `['!=', 'id', 1]` のようなより複雑な条件を使用することはできません。より複雑な条件を指定する必要がある場合は、find()where() と組み合わせて使用してください。

使用例については、次のコードを参照してください。

// find the customers whose primary key value is 10
$customers = Customer::findAll(10);

// the above code is equivalent to:
$customers = Customer::find()->where(['id' => 10])->all();

// find the customers whose primary key value is 10, 11 or 12.
$customers = Customer::findAll([10, 11, 12]);

// the above code is equivalent to:
$customers = Customer::find()->where(['id' => [10, 11, 12]])->all();

// find customers whose age is 30 and whose status is 1
$customers = Customer::findAll(['age' => 30, 'status' => 1]);

// the above code is equivalent to:
$customers = Customer::find()->where(['age' => 30, 'status' => 1])->all();

このメソッドにユーザー入力を渡す必要がある場合は、入力値がスカラーであるか、配列条件の場合は、配列構造が外部から変更されないようにしてください。

// yii\web\Controller ensures that $id is scalar
public function actionView($id)
{
    $model = Post::findOne($id);
    // ...
}

// explicitly specifying the colum to search, passing a scalar or array here will always result in finding a single record
$model = Post::findOne(['id' => Yii::$app->request->get('id')]);

// do NOT use the following code! it is possible to inject an array condition to filter by arbitrary column values!
$model = Post::findOne(Yii::$app->request->get('id'));
public abstract static array findAll ( $condition )
$condition mixed

プライマリキー値またはカラム値のセット

戻り値 array

ActiveRecord インスタンスの配列。何も一致しない場合は空の配列。

                public static function findAll($condition);

            
findOne() public abstract static method

プライマリキーまたは列の値の配列で、単一のアクティブレコードモデルインスタンスを返します。

このメソッドは以下を受け入れます。

  • スカラー値(整数または文字列):単一のプライマリキー値でクエリを実行し、対応するレコードを返します(見つからない場合は null)。
  • 非連想配列:プライマリキー値のリストでクエリを実行し、最初のレコードを返します(見つからない場合は null)。
  • 名前と値のペアの連想配列:属性値のセットでクエリを実行し、それらすべてに一致する単一のレコードを返します(見つからない場合は null)。 `['id' => 1, 2]` は非連想配列として扱われることに注意してください。カラム名は、SQL DBMS の場合は現在のレコードテーブルのカラムに限定されるか、そうでない場合は単純なフィルタ条件に限定されるようにフィルタリングされます。
  • yii\db\Expression:式は直接使用されます。(@since 2.0.37)

このメソッドは自動的に one() メソッドを呼び出し、ActiveRecord インスタンスを返すことに注意してください。

注意:これは簡略化されたメソッドであるため、 `['!=', 'id', 1]` のようなより複雑な条件を使用することはできません。より複雑な条件を指定する必要がある場合は、find()where() と組み合わせて使用してください。

使用例については、次のコードを参照してください。

// find a single customer whose primary key value is 10
$customer = Customer::findOne(10);

// the above code is equivalent to:
$customer = Customer::find()->where(['id' => 10])->one();

// find the customers whose primary key value is 10, 11 or 12.
$customers = Customer::findOne([10, 11, 12]);

// the above code is equivalent to:
$customers = Customer::find()->where(['id' => [10, 11, 12]])->one();

// find the first customer whose age is 30 and whose status is 1
$customer = Customer::findOne(['age' => 30, 'status' => 1]);

// the above code is equivalent to:
$customer = Customer::find()->where(['age' => 30, 'status' => 1])->one();

このメソッドにユーザー入力を渡す必要がある場合は、入力値がスカラーであるか、配列条件の場合は、配列構造が外部から変更されないようにしてください。

// yii\web\Controller ensures that $id is scalar
public function actionView($id)
{
    $model = Post::findOne($id);
    // ...
}

// explicitly specifying the colum to search, passing a scalar or array here will always result in finding a single record
$model = Post::findOne(['id' => Yii::$app->request->get('id')]);

// do NOT use the following code! it is possible to inject an array condition to filter by arbitrary column values!
$model = Post::findOne(Yii::$app->request->get('id'));
public abstract static static|null findOne ( $condition )
$condition mixed

プライマリキー値またはカラム値のセット

戻り値 static|null

条件に一致する ActiveRecord インスタンス。何も一致しない場合は null

                public static function findOne($condition);

            
getAttribute() public abstract method

指定された属性値を返します。

このレコードがクエリの結果であり、属性がロードされていない場合は、null が返されます。

hasAttribute() も参照してください。

public abstract mixed getAttribute ( $name )
$name string

属性名

戻り値 mixed

属性値。属性が設定されていないか、存在しない場合は null

                public function getAttribute($name);

            
getDb() public abstract static method

このARクラスで使用される接続を返します。

public abstract static mixed getDb ( )
戻り値 mixed

この AR クラスで使用されるデータベース接続。

                public static function getDb();

            
getIsNewRecord() public abstract method

現在のレコードが新しい(データベースに保存されていない)かどうかを示す値を返します。

public abstract boolean getIsNewRecord ( )
戻り値 boolean

レコードが新規で、save() を呼び出すときに挿入する必要があるかどうか。

                public function getIsNewRecord();

            
getOldPrimaryKey() public abstract method

古いプライマリキーの値を返します。

これは、find メソッド(例:find()、findOne())を実行した後にレコードに設定されるプライマリキー値を指します。プライマリキー属性に異なる値を手動で割り当てても、値は変更されません。

public abstract mixed getOldPrimaryKey ( $asArray false )
$asArray boolean

プライマリキー値を配列として返すかどうか。true の場合、戻り値はカラム名をキーとし、カラム値を値とする配列になります。これが false (デフォルト)の場合、非複合プライマリキーに対してはスカラー値が返されます。

戻り値 mixed

古いプライマリキー値。プライマリキーが複合キーの場合、または $asArray が true の場合は、配列(カラム名 => カラム値)が返されます。それ以外の場合は文字列が返されます(キー値が null の場合は null が返されます)。

                public function getOldPrimaryKey($asArray = false);

            
getPrimaryKey() public abstract method

プライマリキーの値を返します。

public abstract mixed getPrimaryKey ( $asArray false )
$asArray boolean

プライマリキー値を配列として返すかどうか。 true の場合、戻り値は属性名をキーとし、属性値を値とする配列になります。複合プライマリキーの場合は、このパラメータ値に関係なく、常に配列が返されることに注意してください。

戻り値 mixed

プライマリキー値。プライマリキーが複合キーの場合、または $asArray が true の場合は、配列(属性名 => 属性値)が返されます。それ以外の場合は文字列が返されます(キー値が null の場合は null が返されます)。

                public function getPrimaryKey($asArray = false);

            
getRelation() public abstract method

指定された名前のリレーションオブジェクトを返します。

リレーションは、yii\db\ActiveQueryInterface を実装するオブジェクト(通常はリレーショナル yii\db\ActiveQuery オブジェクト)を返す getter メソッドによって定義されます。これは、ActiveRecord クラス自体またはそのビヘイビアのいずれかで宣言できます。

public abstract yii\db\ActiveQueryInterface getRelation ( $name, $throwException true )
$name string

リレーション名。例:`getOrders()` メソッド(大文字と小文字を区別)で定義されたリレーションの場合は `orders`。

$throwException boolean

リレーションが存在しない場合に例外をスローするかどうか。

戻り値 yii\db\ActiveQueryInterface

リレーショナルクエリオブジェクト

                public function getRelation($name, $throwException = true);

            
hasAttribute() public abstract method

レコードに指定された名前の属性があるかどうかを示す値を返します。

public abstract boolean hasAttribute ( $name )
$name string

属性の名前

戻り値 boolean

指定された名前の属性がレコードに存在するかどうか。

                public function hasAttribute($name);

            
insert() public abstract method

このレコードの属性値を使用して、レコードをデータベースに挿入します。

使用例

$customer = new Customer;
$customer->name = $name;
$customer->email = $email;
$customer->insert();
public abstract boolean insert ( $runValidation true, $attributes null )
$runValidation boolean

レコードを保存する前にバリデーション(validate() の呼び出し)を実行するかどうか。デフォルトは true です。バリデーションに失敗した場合、レコードはデータベースに保存されず、このメソッドは false を返します。

$attributes array|null

保存する必要がある属性のリスト。デフォルトは null で、DBからロードされたすべての属性が保存されることを意味します。

戻り値 boolean

属性が有効であり、レコードが正常に挿入されたかどうか。

                public function insert($runValidation = true, $attributes = null);

            
instance() public abstract static method

定義場所: yii\base\StaticInstanceInterface::instance()

メタ情報を取得するために使用できる静的クラスインスタンスを返します。

public abstract static static instance ( $refresh false )
$refresh boolean

既にキャッシュされている場合でも、静的インスタンスを再作成するかどうか。

戻り値 static

クラスインスタンス。

                public static function instance($refresh = false);

            
isPrimaryKey() public abstract static method

指定された属性のセットがこのモデルのプライマリキーを表しているかどうかを示す値を返します。

public abstract static boolean isPrimaryKey ( $keys )
$keys array

チェックする属性のセット

戻り値 boolean

与えられた属性のセットが、このモデルの主キーを表すかどうか。

                public static function isPrimaryKey($keys);

            
link() public abstract method

2つのレコード間の関係を確立します。

リレーションシップは、あるレコードの外部キーの値を、別のレコードの対応する主キーの値に設定することによって確立されます。外部キーを持つレコードは、バリデーションを実行せずにデータベースに保存されます。

リレーションシップがジャンクションテーブルを伴う場合、両方のレコードからの主キーの値を含む新しい行がジャンクションテーブルに挿入されます。

このメソッドでは、主キーの値が null でないことが必要です。

public abstract void link ( $name, $model, $extraColumns = [] )
$name string

リレーションシップの大文字と小文字を区別する名前。例えば、getOrders() メソッドで定義されたリレーションの場合は orders です。

$model static

現在のものとリンクするレコード。

$extraColumns array

ジャンクションテーブルに保存される追加の列の値。このパラメータは、ジャンクションテーブルを伴うリレーションシップ(つまり、yii\db\ActiveQueryInterface::via() で設定されたリレーション)の場合にのみ意味があります。

populateRelation() public abstract method (バージョン 2.0.8 から利用可能)

関連レコードで指定された名前のリレーションを設定します。

このメソッドは、リレーションが存在するかどうかをチェックしないことに注意してください。

public abstract void populateRelation ( $name, $records )
$name string

リレーション名。例:`getOrders()` メソッド(大文字と小文字を区別)で定義されたリレーションの場合は `orders`。

$records yii\db\ActiveRecordInterface|array|null

リレーションに設定される関連レコード。

                public function populateRelation($name, $records);

            
primaryKey() public abstract static method

このARクラスのプライマリキーを返します。

レコードに主キーが1つしかない場合でも、配列が返される必要があることに注意してください。

主キーのについては、代わりに getPrimaryKey() を参照してください。

public abstract static string[] primaryKey ( )
戻り値 string[]

このARクラスの主キー名。

                public static function primaryKey();

            
save() public abstract method

現在のレコードを保存します。

このメソッドは、isNewRecord が true の場合は insert() を呼び出し、isNewRecord が false の場合は update() を呼び出します。

例えば、顧客レコードを保存するには

$customer = new Customer; // or $customer = Customer::findOne($id);
$customer->name = $name;
$customer->email = $email;
$customer->save();
public abstract boolean save ( $runValidation true, $attributeNames null )
$runValidation boolean

レコードを保存する前にバリデーション(validate() の呼び出し)を実行するかどうか。デフォルトは true です。バリデーションに失敗した場合、レコードはデータベースに保存されず、このメソッドは false を返します。

$attributeNames array|null

保存する必要のある属性名のリスト。デフォルトは null で、DBからロードされたすべての属性が保存されることを意味します。

戻り値 boolean

保存が成功したかどうか(つまり、バリデーションエラーが発生しなかったかどうか)。

                public function save($runValidation = true, $attributeNames = null);

            
setAttribute() public abstract method

指定された属性値を設定します。

hasAttribute() も参照してください。

public abstract void setAttribute ( $name, $value )
$name string

属性名。

$value mixed

属性値。

                public function setAttribute($name, $value);

            
unlink() public abstract method

2つのレコード間の関係を破棄します。

$delete が true の場合、リレーションシップの外部キーを持つレコードは削除されます。それ以外の場合、外部キーは null に設定され、レコードはバリデーションなしで保存されます。

public abstract void unlink ( $name, $model, $delete false )
$name string

リレーションシップの大文字と小文字を区別する名前。例えば、getOrders() メソッドで定義されたリレーションの場合は orders です。

$model static

現在のものからリンクを解除するモデル。

$delete boolean

外部キーを含むモデルを削除するかどうか。false の場合、モデルの外部キーは null に設定され、保存されます。true の場合、外部キーを含むモデルは削除されます。

update() public abstract メソッド

このアクティブレコードへの変更をデータベースに保存します。

使用例

$customer = Customer::findOne($id);
$customer->name = $name;
$customer->email = $email;
$customer->update();
public abstract integer|boolean update ( $runValidation true, $attributeNames null )
$runValidation boolean

レコードを保存する前にバリデーション(validate() の呼び出し)を実行するかどうか。デフォルトは true です。バリデーションに失敗した場合、レコードはデータベースに保存されず、このメソッドは false を返します。

$attributeNames array|null

保存する必要がある属性のリスト。デフォルトは null で、DBからロードされたすべての属性が保存されることを意味します。

戻り値 integer|boolean

影響を受けた行数、またはバリデーションに失敗した場合や、その他の理由で更新プロセスが停止した場合はfalseです。更新が成功した場合でも、影響を受けた行数が0になる可能性があることに注意してください。

                public function update($runValidation = true, $attributeNames = null);

            
updateAll() public abstract static メソッド

指定された属性値と条件を使用してレコードを更新します。

例えば、ステータスが2のすべての顧客のステータスを1に変更する場合。

Customer::updateAll(['status' => 1], ['status' => '2']);
public abstract static integer updateAll ( $attributes, $condition null )
$attributes array

レコードに保存される属性値(名前と値のペア)。update()とは異なり、これらはバリデーションされません。

$condition mixed

更新されるレコードと一致する条件。このパラメータの指定方法については、yii\db\QueryInterface::where()を参照してください。空の条件はすべてのレコードと一致します。

戻り値 integer

更新された行数

                public static function updateAll($attributes, $condition = null);