echowine/laravel-orm-ao

该软件包的最新版本(dev-master)没有可用的许可信息。

dev-master 2017-02-10 23:59 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:44:39 UTC


README

像对象一样对待你的属性!

安装

修改你的composer.json并运行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);
    }

}

布尔值

从最简单的开始,只接受两个值(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;

###方法

###异常

字符串

多亏了魔法方法,编辑属性值保持不变

    $user = User::first();
    $user -> username = "Admin";
    $user -> save();

但我告诉你,属性是对象!

    $user -> username -> toLowerCase(); // "admin"
    $user -> username -> length(); // 5

###方法

###异常

当前字符串字段使用Stringy\Stringy,请在此处查看所有可用方法 danielstjules/Stringy