Як викликати функцію від контролера для включення в сторінку перегляду з 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);
}

В представленнях/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', 'post'); $ data ['qry_post'] = $ this-> post-> get_all_post (); $ this-> load-> view ('sh_all_post_view', $ data); } public function main() {$ this-> load-> view ('main'); } Я хочу включити цю функцію для показу тільки на сторінці індексу. коли я відкриваю індексну сторінку, вона повинна показувати сторінку з цих функцій на сторінці індексу.
додано Автор user572575, джерело
Ви хочете включити інше представлення з вигляду?
додано Автор Vikk, джерело

3 Відповіді

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

У main.php:

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

Вам навіть не потрібно передавати його парамайстри, оскільки вони буферизовані та доступні для будь-якого дитячого перегляду, який ви можете вставити. Але, будь ласка, будь ласка, зрозумійте, що вам потрібно.

Якщо ви хочете включити до основного() ті самі перегляди, які ви завантажуєте в метод login (), звичайно, вам не потрібно включати CI URI, а просто створюйте змінні, які потрібно передати в логін методу контролера (), а потім викликати будь-який вигляд, який ви хочете, будь то вид, який призначений для цього конкретного методу або для будь-якого іншого методу контролера.

Отже, for.ex.

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

В представленнях/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
додано
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php