Як выклікаць функцыю з кантролера, каб уключыць у View старонку з Codeigniter?

I want to call function from Controller to include into the View page with Codeigniter. Usually when I open any page, I call $this->load->view() in Controller for open that page. Now I want to include sub page into main page, but it can't include any function in View. I try to include function like this.

<body><? include(site_url().'/login'); ?></body>

<body><? include('/login'); ?></body>

<body><? include('./login'); ?></body>

Я магу адкрыць старонку з гэтай спасылцы Http: //localhost/ci_house/index.php/login . але калі я адкрываю галоўную старонку запускае мой код ён паказвае гэтыя памылкі.

A PHP Error was encountered

Severity: Warning

Message: include(http://localhost/ci_house/index.php/login) [function.include]: failed to open stream: no suitable wrapper could be found

Filename: views/main.php

Line Number: 8
A PHP Error was encountered

Severity: Warning

Message: include() [function.include]: Failed opening 'http://localhost/ci_house/index.php/login' for inclusion (include_path='.;C:\php5\pear')

Filename: views/main.php

Line Number: 8

Я хачу паказаць 2 від на 1 старонцы.

function test1()
{ $data['var_for_login_view'] = 'get table1';
  $this->load->view('main1',$data);
}
function test2()
{ $data['var_for_login_view'] = 'get table2';
  $this->load->view('main2',$data);
}

У Views/main.php:

$this->load->view('test1');
$this->load->view('test2');` 

Я хачу паказаць, як

<body>
include('main1.php');
include('main2.php');
</body>

але я магу паказаць, як гэта ў Codeigniter.

0
Так, <б> Прыклад функцыя sh_all_post() {$ this-> load-> мадэль ( 'post_model', 'паведамленне'); $ Дадзеных [ 'qry_post'] = $ этом-> пост-> get_all_post (); $ This-> load-> Выгляд ( 'sh_all_post_view', $ дадзеных); } Функцыя асноўны грамадскасці() {$ this-> load-> Выгляд ( 'галоўны'); } Я хачу, каб уключыць гэтыя функцыі, каб паказаць толькі галоўную старонку. калі я адкрываю старонку індэкса ён павінен паказаць старонку з гэтых функцый у індэкснай старонцы.
дададзена аўтар user572575, крыніца
Вы хочаце, каб уключыць іншы выгляд з выглядам?
дададзена аўтар Vikk, крыніца

3 адказы

Я сапраўды не магу зразумець ваш пытанне добра, але эй, вы можаце "уключыць" любы від ўнутры іншы выгляд без праблем ..

У main.php:

$this->load->view('login');

Вам нават не трэба перадаць яго ў paramwters, бо яны захоўваюцца ў буферы так даступныя для любога гледжання дзіцяці можна ўставіць. Але, калі ласка, больш ясна, што вы на самой справе трэба.

Калі вы хочаце ўключыць у асноўны() тыя ж погляды, загрузіўшы ў ўваходзе() метад, вядома, вы не павінны ўключаць у сябе CI URI, а проста стварыць зменныя, якія трэба перадаць у метад ўваходу кантролера (), а затым выклікаць любы выгляд вы хочаце, няхай гэта будзе выгляд, які прызначаны для гэтага канкрэтнага метаду або метады любога іншага кантролера.

Так, for.ex.

function login()
{
  $data['var_for_login_view'] = 'a variable';
  $data['var_for_this_view'] = 'another variable';
  $this->load->view('main');
}

У Views/main.php:

echo $var_for_this_view;
$this->load->view('login');
echo $var_for_login_view;

// see? $data was not passed to $this->load->view('login'), but it's still there nonetheless!
1
дададзена

Тое, што я разумею, заключаецца ў наступным: У вас ёсць нейкая функцыя, пэўная ў адным з кантролераў, і вы хочаце, каб мець магчымасць выклікаць гэтыя функцыі з іншага кантролера/гледжання.

Калі гэта дакладна, то мы не можам нармальна гэта зрабіць. Вось некалькі альтэрнатыў:

  1. Перамясціць гэтыя функцыі ў бібліятэцы/памочнік. Загрузіце гэтую бібліятэку/памочнік, куды вы хочаце, і пасля гэтага вы можаце выклікаць гэтыя функцыі.

  2. Калі вы абсалютна неабходна, каб выклікаць гэтыя функцыі з кантролера, вы можаце паглядзець у пашырэнне HMVC .

0
дададзена

You can't include using site url, use this $this->load->view('template', $data); for codeigniter.

0
дададзена