Skip to content

Remove ability to declare scopes in ActiveRecord, leave it to ActiveQuery #2016

@samdark

Description

@samdark

Pros:

Cons:

  • In order to use custom scopes you need ActiveQuery class for a model.
  • Not familiar to 1.1 users.

Examples:

class UserQuery extends ActiveQuery
{
  public function active()
  {
    $this->andWhere(['active' => 1]);
    return $this;
  }

  public function age($years)
  {
    $this->andWhere(['age' => $years]);
    return $this;
  }
}

class User extends ActiveRecord
{
  public static function createQuery()
  {
    return new UserQuery(['modelClass' => get_called_class()]);
  }
}

$users = User::find()->active()->age(25)->all();

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions