erickfirmo / phpmodel
此包的最新版本(1.3.1)没有提供许可证信息。
PHP中的MySQL查询构建类。
1.3.1
2024-08-27 10:54 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^5.0
README
PHP中的MySQL查询构建器 - 由Erick Firmo提供 - https://erickfirmo.dev
要求
- PHP >= 7.4
安装
使用composer安装
composer require erickfirmo/phpmodel
命名空间
<?php use ErickFirmo\Model;
使用示例
<?php // Requires composer autoloader require __DIR__ . '/vendor/autoload.php'; use ErickFirmo\Model; // Creating a class for the entity class Car extends Model { protected $table = 'cars'; protected $fillable = [ 'name', 'company', 'year', 'plate', 'color' ]; } // Insert register example, returns boolean $saved = (new Car())->insert([ 'name' => $name, 'company' => $company, 'year' => $year, 'plate' => $plate, 'color' => $color, ]); // Select register example, returns collection $cars = (new Car())->select() ->where('year', '=', $year) ->get();
集合
{ "model": "App\\Models\\Car", "table": "cars", "attributes": [ "id", "name", "company", "year", "plate", "uf", "color", "price" ], "items": [ { "id": "12", "name": "Fusca", "company": "VW", "year": "1934", "plate": "ERX-8761", "uf": "SP", "color": "yellow", "price": "89000" }, { "id": "13", "name": "Uno", "company": "Fiat", "year": "1934", "plate": "ERX-8761", "uf": "SP", "color": "red", "price": "89000" }, { "id": "14", "name": "Chevette", "company": "Chevrolet", "year": "1934", "plate": "ERX-8761", "uf": "SP", "color": "black", "price": "89000" }, ], "pages": [ ], }
查询
提供在数据库中执行MySQL查询的方法
选择
使用
<?php // Returns all columns from `cars` table $cars = (new Car())->select() ->get();
在
<?php // Returns specific columns from model table $cars = (new Car())->select(['name', 'company', 'year']) ->get();
where
向查询构建器添加where子句
<?php $cars = (new Car())->select() ->where('company', '=', $company) ->get();
向查询构建器添加多个where子句
<?php $cars = (new Car())->select() ->where('company', '=', $company) ->where('year', '=', $year) ->get();
插入
将记录插入数据库表
<?php $saved = (new Car())->insert([ 'name' => $name, 'company' => $company, 'plate' => $plate, 'year' => $year, 'color' => $color, ]);
更新
更新数据库表中的记录
<?php $saved = (new Car())->update($id, [ 'plate' => $plate, 'color' => $color, ]);
删除
从数据库表中删除记录
<?php $saved = (new Car())->delete($id);
FindById
按ID查找记录
<?php $car = (new Car())->findById($id);
OrderBy
您可以使用
升序排序
<?php $cars = (new Car())->select() ->orderBy('asc') ->get();
降序排序
<?php $cars = (new Car())->select() ->orderBy('desc') ->get();
Limit
限制查询中的记录数
<?php $cars = (new Car())->select() ->limit(50) ->get();
分页
我们可以使用
在这个例子中,我们有100条记录,我们将每页显示25条
<?php $cars = (new Car())->select() ->paginate(25);
默认情况下,
"pages": [ 1, 2, 3, 4 ],
我们可以使用这个数组来创建我们的分页组件。使用php和bootstrap的简单分页组件示例
<nav aria-label="Page navigation example"> <ul class="pagination"> <?php foreach ($cars->pages as $key => $page) { ?> <li class="page-item <?php echo (!isset($_GET['page']) && $page == 1) || $_GET['page'] == $page ? 'active' : ''; ?>"> <a class="page-link" href="<?php echo 'pessoas?page='.$page; ?>"> <?php echo $page; ?> </a> </li> <?php } ?> </ul> </nav>