A collection of miscellaneous traits to extend parts of Yii2.
- Yii2 Traits
You can install the package with Composer using the following command:
composer require imliam/yii2-traits:^1.0.0
Once installed, you can then use
the traits in your existing classes.
Set the default value of an existing column.
<?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');
}
}
Get the first record matching the attributes or create it. Perfect for handling pivot models.
<?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'
Create a new instance of the model and persist it.
<?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'
Create a new instance of the model without persisting it.
<?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
Delete a model matching the given attributes.
<?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'
Get the first instance of a model.
<?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
composer test
Please see the changelog file for more information on what has changed recently.
Please see the upgrading file for details on upgrading from previous versions.
Please see the contributing file and code of conduct for details on contributing to the project.
If you discover any security related issues, please email liam@liamhammett.com instead of using the issue tracker.
The MIT License (MIT). Please see the license file for more information.