2015-07-20 5 views
2

Я включаю «navigation.php», который имеет общее меню во всех моих представлениях.включают общий файл сбой внутри только одного файла Codeigniter

<div id="navigation"> 
    <? include("navigation.php"); ?> 
</div> 

Этот код работает во всех других файлах, но в одном файле он дает ошибки.

Severity: Warning 
Message: include(navigation.php): failed to open stream: No such file or directory 
Filename: views/readsinvo_index.php 
Line Number: 2 


Severity: Warning 
Message: include(): Failed opening 'navigation.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') 
Filename: views/readsinvo_index.php 
Line Number: 2 

в "readsinvo_index.php" это же, как и другие файлы

<div id="navigation"> 
    <? include("navigation.php"); ?> 
</div> 

и оба файла находятся внутри "мнения". оба файла имеют разрешение 777.

Но когда я попытался с

<? include(dirname(__FILE__)."/navigation.php"); ?> 

Он отлично работает, но и во всех других страницах, он работает при использовании

<? include("navigation.php"); ?> 

есть ли возможная причина, что я не могу включать файл обычно только в этом файле. Я использую frameworkignign framework и CentOS.

+0

Попробуйте с 'включают (APPPATH.'views/navigation.php ');' – Saty

+0

Есть ли какой-либо причине не использовать CodeIgniter в ' $ this-> load-> вид(); '? Вы можете включать представления в представлениях. – MonkeyZeus

+0

@MonkeyZeus, проект выполняется другим разработчиком, теперь я его поддерживаю. Я изменю код :). Но, как я сказал, проблема возникает только в одном представлении, у нее нет специального кода. другие представления отлично работают с

ответ

2

Вы можете использовать APPPATH

APPPATH.'views/navigation.php' 

И Возможный дубликат how call another php file to Codeigniter view

+0

Это работает. Спасибо . Есть ли возможная причина, что только одно представление не работает, а другие работают нормально, я знаю, что это невозможно воссоздать;) –

1

CodeIgniter запускается из файла сценария с одной записью index.php.

Итак, когда вы говорите текущий каталог, это путь к каталогу index.php.

Если вы включите какой-либо файл, он сначала будет искать любой файл, существующий в данном каталоге, а затем включить путь.

Заявление <? include(dirname(__FILE__)."/navigation.php"); ?>

dirname дает путь index.php.

Когда вы добавляете оператор: <? include("/navigation.php"); ?> в представлениях, он будет искать каталог представлений, следовательно, ошибку.

+0

Это работает. Спасибо . Есть ли возможная причина, что только один вид не работает, а другие работают нормально, я знаю, что это невозможно воссоздать;) –