sourcegr/freakquent

一个简洁明了、无废话的库

1.0.0 2020-10-04 09:43 UTC

This package is auto-updated.

Last update: 2024-09-05 17:40:05 UTC


README

一个类似于Eloquent、QueryBuilder、Doctrine、IDE友好、无废话的PHP ORM。

配置

<?php

use Sourcegr\QueryBuilder\DB;
use Sourcegr\Freakquent\Freakquent;
use Sourcegr\QueryBuilder\Grammars\MySQL;


$grammar = new MySQL([
    'DB' => 'dbname',
    'USER' => 'user',
    'PASS' => 'passwordd',
    'HOST' => '127.0.0.1'
]);

$DB = new DB($grammar);
Freakquent::init($DB);

示例联系人模型

<?php

namespace Models;


use Sourcegr\Freakquent\BaseModel;
use Sourcegr\Freakquent\Relations\RelationTrait;

class Contact extends BaseModel
{
    use RelationTrait;

    protected static $table = 'contacts';

    public $id;
    public $name;
    public $company_id;


    public function company() {
        return $this->belongsTo(Company::class, 'company_id', 'id');
    }
}

示例公司模型

<?php

    namespace Models;


    use Sourcegr\Freakquent\BaseModel;
    use Sourcegr\Freakquent\Relations\RelationTrait;

    class Company extends BaseModel
    {
        use RelationTrait;

        // set up model's database tablename
        protected static $table = 'companies';

        // set up model's database columns
        public $id;
        public $name;

        // set up a relation. A Company has many contacts
        public function contacts()
        {
            return $this->hasMany(Contact::class, 'id', 'company_id');
        }
    }

如何使用它

通过id查找模型 Contact::find(1);

查找并删除它 Contact::find(1).delete();

查找并更新它

$c = Contact::find(1);
$c->name = 'New name';
$c->save();