Package Data | |
---|---|
Maintainer Username: | echowine |
Package Create Date: | 2017-02-04 |
Package Last Update: | 2017-02-10 |
Home Page: | |
Language: | PHP |
License: | Unknown |
Last Refreshed: | 2025-02-09 15:09:41 |
Package Statistics | |
---|---|
Total Downloads: | 8 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Treat your attributes as they deserve, as objects!
Modify your composer.json and run composer update
{
"require": {
"echowine/laravel-orm-ao":"@dev"
}
}
namespace CoreWine\ORM\Test\Model;
use CoreWine\ORM\Model;
use CoreWine\ORM\AttributesBuilder;
class User extends Model{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'tests_users';
/**
* List of all your attributes.
*
* @param AttributesBuilder $builder
*
* @return void
*/
protected function attributes(AttributesBuilder $builder){
$builder -> string('username')
-> minLength(3)
-> maxLength(10)
-> match("/^([a-zA-Z0-9])*$/");
$builder -> boolean('active');
$builder -> number('points') -> range(0,99);
}
}
Starting with the easiest one, only two values accepted (true,false)
$user = User::first();
$user -> active = "true"; // true
$user -> active = "false"; // false
$user -> active = true; // true
$user -> active = 1; // true
$user = User::first();
$user -> points = 10;
###Methods
Method | Description -------------------------------------------------------| ------------- range(int $min, int $max) | Minimum and maximum at once min(int $min) | Minimum value max(int $max) | Maximum value
###Exceptions
Exception | Description -------------------------------------------------------| ------------- CoreWine\ORM\Field\Number\Exceptions\TooSmallException | The value is too small CoreWine\ORM\Field\Number\Exceptions\TooBigException | The value is too big
Thanks to magic methods editing the value of an attribute remains the same
$user = User::first();
$user -> username = "Admin";
$user -> save();
But i told you, attributes are objects!
$user -> username -> toLowerCase(); // "admin"
$user -> username -> length(); // 5
###Methods
Method | Description -------------------------------------------------------| ------------- match(string|closure $match) | A regular expression or a closure that define the correct value minLength(int $min) | Minimum length maxLength(int $max) | Maximum length
###Exceptions
Exception | Description
------------------------------------------------------ | -------------
CoreWine\ORM\Field\Number\Exceptions\TooShortException | The value is too short
CoreWine\ORM\Field\Number\Exceptions\TooLongException | The value is too long
CoreWine\ORM\Field\Number\Exceptions\InvalidException | The value doesn't match with the regex/closure
The string field is currently using Stringy\Stringy, check all methods available here danielstjules/Stringy