krgm.so-manager-dev.com/app/Models/ContractAllowableCity.php

84 lines
2.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Support\Facades\Auth;
use App\Utils;
use Illuminate\Database\Eloquent\Model;
class ContractAllowableCity extends Model
{
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
const PERPAGE = 50;
protected $table = 'contract_allowable_city';
protected $primaryKey = 'contract_allowable_city_id';
protected $fillable = [
'city_id',
'contract_allowable_city_name',
'park_id',
'same_district_flag',
'operator_id'
];
/**
* 一覧検索・ソート処理
*/
public static function search($inputs)
{
$list = self::query();
if ($inputs['isMethodPost'] ?? false) {
if (!empty($inputs['contract_allowable_city_id'])) {
$list->where('contract_allowable_city_id', $inputs['contract_allowable_city_id']);
}
if (!empty($inputs['city_id'])) {
$list->where('city_id', $inputs['city_id']);
}
if (!empty($inputs['contract_allowable_city_name'])) {
$list->where('contract_allowable_city_name', 'like', '%' . $inputs['contract_allowable_city_name'] . '%');
}
if (!empty($inputs['park_id'])) {
$list->where('park_id', $inputs['park_id']);
}
}
// 並び順
if (!empty($inputs['sort'])) {
$list->orderBy($inputs['sort'], $inputs['sort_type'] ?? 'asc');
}
if ($inputs['isExport'] ?? false) {
return $list->get();
} else {
return $list->paginate(Utils::item_per_page);
}
}
/**
* 主キーで取得
*/
public static function getByPk($pk)
{
return self::find($pk);
}
/**
* 主キー配列で一括削除
*/
public static function deleteByPk($arr)
{
return self::whereIn('contract_allowable_city_id', $arr)->delete();
}
/**
* 選択リスト取得用(フォーム等)
*/
public static function getList()
{
return self::pluck('contract_allowable_city_name', 'contract_allowable_city_id');
}
}