Как получить корневой каталог CakePHP? - PullRequest
6 голосов
/ 29 июня 2011

У меня есть представление с формулой (которое не создается с помощью помощника по формам). Например, у меня установлен CakePHP в папке myfolder1.

Итак, моя формула начинается с этой строки:

<form id="ctrlAddForm" method="post" action="/myfolder1/ctrl/add" accept-charset="utf-8">

Но если я переименую корневую папку, мне придется отредактировать все формулы (еще 2). Существует ли какая-либо константа или функция, представляющая корневой каталог / имя?

Я читал о константе ROOT . Должен ли я использовать эту переменную?

Решение

  1. Вы можете определить константу ROOT_NAME в app \ webroot \ index.php с помощью basename(ROOT).
  2. Вы можете использовать функцию HTML Helper url () . Например, в атрибуте действия тега формы:

    $ this-> Html-> url (массив ('controller' => 'ctrl', 'action' => 'add'));

Ответы [ 4 ]

4 голосов
/ 30 июня 2011

Ну, вы можете попробовать эту обычную функцию PHP: basename

basename(APP);

Так как это не работает, я фактически открыл свою собственную установку Cake. Попробуйте это:

basename(dirname(APP));
3 голосов
/ 02 марта 2012

Мне нужно было получить URL корня документа CakePHP для использования в Javascript, и я смог настроить его, используя приведенное выше решение:

<script language="Javascript">
$(document).ready(function() {
         docRoot = '<?php echo $this->Html->url('/'); ?>';
}
</script>

и этот фрагмент кода - $this->Html->url('/')- отлично работает при получении корневого каталога / URL для CakePHP.

1 голос
/ 01 июля 2011

Вы можете проверить маршруты /var/www/yourprojectname/cake/conf/paths.php

вы можете получить все константы, которые используются через CAKEPHP.

Надеюсь, это поможет.

С уважением, Archit.

1 голос
/ 29 июня 2011

На этой странице есть список констант, которые можно использовать, http://book.cakephp.org/view/1141/Core-Definition-Constants

...