Простой PHP-контроллер

132
11

Я хотел бы немного сократить свой контроллер CodeIgniter. Теперь это выглядит так:

case 'klant1':
$data['title'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/klant1', $data);
$this->load->view('templates/footer', $data);
break;
case 'klant2':
$data['title'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/klant2', $data);
$this->load->view('templates/footer', $data);
break;
case 'klant3':
$data['title'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/klant3', $data);
$this->load->view('templates/footer', $data);
break;

Я предполагаю, что может быть способ использовать массив или что-то, что делает klant1 + 2 + 3?

Может ли кто-нибудь помочь мне с кодом? Я не думаю, что это сложно, но я плохо разбираюсь в php..

спросил(а) 2021-01-25T21:43:35+03:00 4 месяца, 3 недели назад
1
Решение
99

Это сделало это:

function view($page = 'home', $klant = null) {
case 'klant':
$data['title'] = $page;
$this->load->view('templates/header', $data);
$loadpage = 'pages/klant'.$klant;
$this->load->view($loadpage, $data);
$this->load->view('templates/footer', $data);
break;
}

ответил(а) 2021-01-25T21:43:35+03:00 4 месяца, 3 недели назад
45

$klan = your_case;    

$data['title'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$klan, $data);
$this->load->view('templates/footer', $data)

ответил(а) 2021-01-25T21:43:35+03:00 4 месяца, 3 недели назад
45

замещать

switch($variable)
{
...your code

в

$data['title'] = $page;    
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$variable, $data);
$this->load->view('templates/footer', $data);

ответил(а) 2021-01-25T21:43:35+03:00 4 месяца, 3 недели назад
45

case 'klant1':
$load = 'klant1';
break;
case 'klant2':
$load = 'klant2';
break;
case 'klant3':
$load = 'klant3';
break;

$data['title'] = $page;

$this->load->vars($data);

$this->load->view('templates/header');
$this->load->view('pages/' . $load);
$this->load->view('templates/footer');

ответил(а) 2021-01-25T21:43:35+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема