Package Data | |
---|---|
Maintainer Username: | ametsuramet |
Maintainer Contact: | ametsuramet@gmail.com (amet suramet) |
Package Create Date: | 2017-08-03 |
Package Last Update: | 2017-08-10 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2025-02-06 03:06:48 |
Package Statistics | |
---|---|
Total Downloads: | 42 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Laravel Package alternative for Eloquent ORM.
Begin by pulling in the package through Composer.
composer require ametsuramet/simple_orm:1.2.*
Or add in the require
key of composer.json
file manually
"ametsuramet/simple_orm": "1.2.*"
Register the ServiceProvider in config/app.php
'providers' => [
// ...
Amet\SimpleORM\ModelBuilderServiceProvider::class,
],
Add this service provider to your bootstrap/app.php
file.
$app->register(Amet\SimpleORM\ModelBuilderServiceProvider::class);
The easiest way to create a model instance is using the simple_orm:model
Artisan command:
php artisan simple_orm:model Project
or you can use interactive mode:
php artisan simple_orm:interactive
php artisan simple_orm:model Project --soft_delete=1 --methods=transactions,users --default_key=uuid --migration=1
All models will placed in app/ORM
folder.
in your controller file:
// ...
use App\ORM\Project;
class yourController extends Controller {
public function yourMethod()
{
$projects = new Project;
$projects = $projects->get();
dd($projects);
}
// ...
or something like this:
// ...
$projects = (new Project)->get();
dd($projects);
// ...
By Default SimpleORM will generate $table attribut, but you can change name of table in Models
...
class Project extends BaseQuery
{
protected $table = 'projects';
...
SimpleORM will also assume that each table has a primary key column named id. You may define a $default_key property to override.
...
class Project extends BaseQuery
{
protected $default_key = 'uuid';
...
// ...
$projects = new Project;
$projects = $projects->where(['id',1])->get();
dd($projects);
// ...
or
// ...
$wheres = [
['id','>=',10],
['date','>=','2017-01-01'],
];
$projects = new Project;
$projects = $projects->where($wheres)->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->limit(10)->get();
dd($projects);
// ...
you can add offset :
// ...
$projects = new Project;
$projects = $projects->limit(20,10)->get();
dd($projects);
// ...
Show deleted only
// ...
$projects = new Project;
$projects = $projects->deleted_only()->get();
dd($projects);
// ...
As noted above, soft deleted models will automatically be excluded from query results, you can use this method to include deleted records
// ...
$projects = new Project;
$projects = $projects->deleted(true)->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->info();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->orderBy('id')->get();
dd($projects);
// ...
or
// ...
$projects = new Project;
$projects = $projects->orderBy('id','desc')->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->groupBy('id')->get();
dd($projects);
// ...
or
// ...
$projects = new Project;
$projects = $projects->groupBy(['id','date'])->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->insert(["name" => 'new project']);
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->update(29,["name" => 'new project']);
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->delete(29);
// ...
// ...
$projects = new Project;
$projects = $projects->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->first();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->find(29);
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->last();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->paginate($params);
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->set_show_column(['id','first_name','last_name'])->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->hide_relation()->get();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->count();
dd($projects);
// ...
// ...
$projects = new Project;
$projects = $projects->getQueryLog();
dd($projects);
// ...
...
class Project extends BaseQuery
{
public function user()
{
$this->hasOne(User:class,'id','user_id','user');
}
...
with show_column
...
class Project extends BaseQuery
{
public function user()
{
$this->hasOne(User:class,'id','user_id','user',['id','first_name','last_name']);
}
...
...
class Project extends BaseQuery
{
public function user()
{
$this->hasOne(User:class,'id','user_id','user');
}
...
with show_column
...
class Project extends BaseQuery
{
public function user()
{
$this->hasOne(User:class,'id','user_id','user',['id','first_name','last_name']);
}
...
...
class Project extends BaseQuery
{
public function user()
{
$pivot_table = [UserProject::class,'user_id','company_id'];
$this->manyToMany(User:class,'id','user_id','user',$pivot_table);
}
...
with show_column
...
class Project extends BaseQuery
{
public function user()
{
$pivot_table = [UserProject::class,'user_id','company_id'];
$this->manyToMany(User:class,'id','user_id','user',$pivot_table,['id','first_name','last_name']);
}
...