relasi wilayah ekosistem
This commit is contained in:
@@ -24,12 +24,13 @@ use App\Models\Core\Program;
|
||||
|
||||
class ValueBasisDataController extends Controller
|
||||
{
|
||||
private $tableModelClassMap = [
|
||||
private $tableExceptionModelClassMap = [
|
||||
'master_provinsi' => \App\Models\Wilayah\Provinsi::class,
|
||||
'master_kabupaten_kota' => \App\Models\Wilayah\KabupatenKota::class,
|
||||
'master_kecamatan' => \App\Models\Wilayah\Kecamatan::class,
|
||||
'master_desa_kelurahan' => \App\Models\Wilayah\DesaKelurahan::class,
|
||||
];
|
||||
private $tableModelClassMap = [];
|
||||
|
||||
public function index(Request $request, string $tabelId): View
|
||||
{
|
||||
@@ -209,14 +210,31 @@ class ValueBasisDataController extends Controller
|
||||
if ($k->tipe == 'foreign_key') {
|
||||
$relasi['kolom_id'] = $k->id;
|
||||
try {
|
||||
$modelClass = Arr::get($this->tableModelClassMap, $k->relasi_tabel);
|
||||
if ($modelClass) {
|
||||
$options_kolom = $modelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->limit(10000);
|
||||
$exceptionModelClass = Arr::get($this->tableExceptionModelClassMap, $k->relasi_tabel);
|
||||
if ($exceptionModelClass) {
|
||||
$relasi['options'] = [];
|
||||
if ($errors = session('errors')) {
|
||||
$oldValue = old($k->kolom);
|
||||
if ($oldValue) {
|
||||
$option = $exceptionModelClass::where($k->relasi_kolom_id, $oldValue)->first();
|
||||
if ($option) {
|
||||
$relasi['options'][] = (object) [
|
||||
'value' => $option->{$k->relasi_kolom_id},
|
||||
'label' => $option->{$k->relasi_kolom_label},
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at')->limit(10000);
|
||||
$modelClass = Arr::get($this->tableModelClassMap, $k->relasi_tabel);
|
||||
if ($modelClass) {
|
||||
$options_kolom = $modelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->limit(10000);
|
||||
} else {
|
||||
$options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at')->limit(10000);
|
||||
}
|
||||
$relasi['options'] = $options_kolom->get();
|
||||
$relasi['sql'] = $options_kolom->toSql();
|
||||
}
|
||||
$relasi['options'] = $options_kolom->get();
|
||||
$relasi['sql'] = $options_kolom->toSql();
|
||||
} catch (\Throwable $th) {
|
||||
$relasi['options'] = [];
|
||||
}
|
||||
@@ -242,8 +260,8 @@ class ValueBasisDataController extends Controller
|
||||
if (!in_array('string', $k->validasi) && ($k->tipe == 'varchar' || $k->tipe == 'text')) {
|
||||
$rules[$k->kolom][] = 'string';
|
||||
}
|
||||
if (!in_array('size', $k->validasi) && ($k->tipe == 'varchar')) {
|
||||
$rules[$k->kolom][] = 'size:255';
|
||||
if (!in_array('max', $k->validasi) && ($k->tipe == 'varchar')) {
|
||||
$rules[$k->kolom][] = 'max:255';
|
||||
}
|
||||
if (!in_array('integer', $k->validasi) && $k->tipe == 'integer') {
|
||||
$rules[$k->kolom][] = 'integer';
|
||||
@@ -269,7 +287,7 @@ class ValueBasisDataController extends Controller
|
||||
$rules[$k->kolom][] = 'string';
|
||||
}
|
||||
if ($k->tipe == 'varchar') {
|
||||
$rules[$k->kolom][] = 'size:255';
|
||||
$rules[$k->kolom][] = 'max:255';
|
||||
}
|
||||
if ($k->tipe == 'integer') {
|
||||
$rules[$k->kolom][] = 'integer';
|
||||
@@ -464,14 +482,34 @@ class ValueBasisDataController extends Controller
|
||||
if ($k->tipe == 'foreign_key') {
|
||||
$relasi['kolom_id'] = $k->id;
|
||||
try {
|
||||
$modelClass = Arr::get($this->tableModelClassMap, 'master_desa_kelurahan');
|
||||
if ($modelClass) {
|
||||
$options_kolom = $modelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->limit(10000);
|
||||
$exceptionModelClass = Arr::get($this->tableExceptionModelClassMap, $k->relasi_tabel);
|
||||
if ($exceptionModelClass) {
|
||||
$relasi['options'] = [];
|
||||
if ($errors = session('errors')) {
|
||||
$oldValue = old($k->kolom);
|
||||
if ($oldValue) {
|
||||
$option = $exceptionModelClass::where($k->relasi_kolom_id, $oldValue)->first();
|
||||
if ($option) {
|
||||
$relasi['options'][] = (object) [
|
||||
'value' => $option->{$k->relasi_kolom_id},
|
||||
'label' => $option->{$k->relasi_kolom_label},
|
||||
];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$options_kolom = $exceptionModelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->limit(10000);
|
||||
$relasi['options'] = $options_kolom->get();
|
||||
}
|
||||
} else {
|
||||
$options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at')->limit(10000);
|
||||
$modelClass = Arr::get($this->tableModelClassMap, $k->relasi_tabel);
|
||||
if ($modelClass) {
|
||||
$options_kolom = $modelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->limit(10000);
|
||||
} else {
|
||||
$options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at')->limit(10000);
|
||||
}
|
||||
$relasi['options'] = $options_kolom->get();
|
||||
$relasi['sql'] = $options_kolom->toSql();
|
||||
}
|
||||
$relasi['options'] = $options_kolom->get();
|
||||
$relasi['sql'] = $options_kolom->toSql();
|
||||
} catch (\Throwable $th) {
|
||||
$relasi['options'] = [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user