php 雄辩的基础模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 雄辩的基础模型相关的知识,希望对你有一定的参考价值。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model as EloquentModel;

class Model extends EloquentModel
{
    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);

        $this->perPage = request()->per_page ?? 15;
    }
  
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('defaultSort', function (Builder $builder) {
            $builder->orderByDesc('id');
        });
    }
    
    public function scopeRecent($query)
    {
        return $query->orderBy('updated_at', 'desc');
    }

    public function scopeFilter($query, $filters)
    {
        foreach ($filters as $k => $v) {
            if (is_array($v)) {
                $query->whereIn($k, $v);
            } else {
                $query->where($k, $v);
            }
        }
    }

    public function scopeEarlierThan($query, $column, $ended_at)
    {
        if (isset($ended_at)) {
            $query->where($column, '>=', $ended_at);
        }
    }

    public function scopeLaterThan($query, $column, $started_at)
    {
        if (isset($started_at)) {
            $query->where($column, '<=', $started_at);
        }
    }
}
...
public function get(Request $request)
{
  $filters = $request->only('id', 'title');
  
  $posts = Post::filter($filters)->get();
}
...

以上是关于php 雄辩的基础模型的主要内容,如果未能解决你的问题,请参考以下文章

php 用于PHPStorm的雄辩模型PHPDocs

我可以在一个地方(一个模型)使用雄辩的ORM和查询生成器吗?

使用现有表模式上的数据透视表在雄辩模型中指定关系字段

laravel:雄辩的例子将数据插入数据库

Laravel 5.6 |雄辩的一对多关系

雄辩的模型关系返回为空