Yii2 Traits
, (*1)
A collection of miscellaneous traits to extend parts of Yii2., (*2)
๐พ Installation
You can install the package with Composer using the following command:, (*3)
composer require imliam/yii2-traits:^1.0.0
Once installed, you can then use
the traits in your existing classes., (*4)
๐ Usage
yii\db\Migration
Migration@fillColumn(string $table, string $column, $value)
Set the default value of an existing column., (*5)
<?php
use yii\db\Migration;
use ImLiam\Yii2Traits\MigrationHelpers;
class m180524_091606_run_migration extends Migration
{
use MigrationHelpers;
public function safeUp()
$this->addColumn('users', 'country', 'string');
$this->fillColumn('users', 'country', 'GB');
}
}
yii\db\ActiveRecord
ActiveRecord@firstOrCreate(array $attributes, array $values = []): self
Get the first record matching the attributes or create it. Perfect for handling pivot models., (*6)
<?php
use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;
class User extends ActiveRecord
{
use ActiveRecordHelpers;
}
$user = User::firstOrCreate(['id' => 1], ['username' => 'Admin']);
// Returns user ID 1 if it exists in the database, or creates
// a new user with the ID of 1 and username of 'Admin'
ActiveRecord@create(array $attributes): self
Create a new instance of the model and persist it., (*7)
<?php
use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;
class User extends ActiveRecord
{
use ActiveRecordHelpers;
}
$user = User::create(['username' => 'Admin']);
// Creates and returns a new user with the username of 'Admin'
ActiveRecord@make(array $attributes): self
Create a new instance of the model without persisting it., (*8)
<?php
use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;
class User extends ActiveRecord
{
use ActiveRecordHelpers;
}
$user = User::make(['username' => 'Admin']);
// Makes a new user with the username of 'Admin' but does NOT save it to the database
ActiveRecord@deleteIfExists(array $attributes)
Delete a model matching the given attributes., (*9)
<?php
use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;
class User extends ActiveRecord
{
use ActiveRecordHelpers;
}
User::deleteIfExists(['username' => 'Admin']);
// Deletes all users with the username of 'Admin'
ActiveRecord@first(string $orderBy = null)
Get the first instance of a model., (*10)
<?php
use yii\db\ActiveRecord;
use ImLiam\Yii2Traits\ActiveRecordHelpers;
class User extends ActiveRecord
{
use ActiveRecordHelpers;
}
$user = User::first();
// Returns the first user in the database
โ
Testing
bash
composer test
, (*11)
๐ Changelog
Please see the changelog file for more information on what has changed recently., (*12)
โฌ๏ธ Upgrading
Please see the upgrading file for details on upgrading from previous versions., (*13)
๐ Contributing
Please see the contributing file and code of conduct for details on contributing to the project., (*14)
๐ Security
If you discover any security related issues, please email liam@liamhammett.com instead of using the issue tracker., (*15)
๐ท Credits
โป๏ธ License
The MIT License (MIT). Please see the license file for more information., (*16)