refactor: unify bag and admin layout routing
This commit is contained in:
41
app/Controllers/Admin/WorkMovedToBag.php
Normal file
41
app/Controllers/Admin/WorkMovedToBag.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Controllers\Admin;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
|
||||
/**
|
||||
* 구 관리자 업무 URL(admin/…) → 메인 사이트 업무 URL(bag/…) 영구 이전.
|
||||
* POST 폼은 307로 메서드·본문 유지를 시도하고, GET 은 301.
|
||||
*/
|
||||
class WorkMovedToBag extends BaseController
|
||||
{
|
||||
public function toBag(string $prefix, string $rest = ''): \CodeIgniter\HTTP\RedirectResponse
|
||||
{
|
||||
$rest = trim($rest, '/');
|
||||
|
||||
if ($prefix === 'packaging-units') {
|
||||
$path = 'packaging-units/manage';
|
||||
if ($rest !== '') {
|
||||
$path .= '/' . $rest;
|
||||
}
|
||||
} else {
|
||||
$path = $prefix;
|
||||
if ($rest !== '') {
|
||||
$path .= '/' . $rest;
|
||||
}
|
||||
}
|
||||
|
||||
$target = site_url('bag/' . $path);
|
||||
$query = $this->request->getUri()->getQuery();
|
||||
if ($query !== '') {
|
||||
$target .= '?' . $query;
|
||||
}
|
||||
|
||||
$code = $this->request->getMethod() === 'post' ? 307 : 301;
|
||||
|
||||
return redirect()->to($target)->setStatusCode($code);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user