64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\ModelFilters;
|
|
|
|
use Illuminate\Support\Arr;
|
|
use EloquentFilter\ModelFilter;
|
|
|
|
class AdFilter extends ModelFilter
|
|
{
|
|
/**
|
|
* 主键
|
|
*/
|
|
public function id($id)
|
|
{
|
|
return $this->where('id', $id);
|
|
}
|
|
/**
|
|
* 备注
|
|
*/
|
|
public function remark($remark)
|
|
{
|
|
return $this->where('remark','like', '%'.$remark.'%');
|
|
}
|
|
|
|
/**
|
|
* 位置
|
|
*/
|
|
public function address($address)
|
|
{
|
|
return $this->where('address', $address);
|
|
}
|
|
public function publishedAt($publishedAt){
|
|
$publishedAt = explode(',',$publishedAt);
|
|
return $this->where(function($q) use ($publishedAt) {
|
|
$startAt = Arr::get($publishedAt, 0) ?? null;
|
|
$endAt = Arr::get($publishedAt, 1) ?? null;
|
|
if(!empty($startAt)){
|
|
$q->where('published_at', '>=', $startAt);
|
|
}
|
|
if(!empty($endAt)){
|
|
$q->where('published_at', '<=', $endAt);
|
|
}
|
|
});
|
|
}
|
|
|
|
public function createdAt($createdAt){
|
|
$createdAt = explode(',',$createdAt);
|
|
return $this->where(function($q) use ($createdAt) {
|
|
$startAt = Arr::get($createdAt, 0) ?? null;
|
|
$endAt = Arr::get($createdAt, 1) ?? null;
|
|
if(!empty($startAt)){
|
|
$q->where('created_at', '>=', $startAt);
|
|
}
|
|
if(!empty($endAt)){
|
|
$q->where('created_at', '<=', $endAt);
|
|
}
|
|
});
|
|
}
|
|
|
|
public function enable($enable){
|
|
return $this->where('is_enable', $enable);
|
|
}
|
|
}
|