2011-06-29 15 views
5

Mam widok formularny (który nie jest tworzony za pomocą helpera formularza). Na przykład zainstalowałem CakePHP w folderze o nazwie "myfolder1".Jak zdobyć katalog główny CakePHP?

Więc moja formułę zaczynającym się od tej linii:

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

Ale jeśli zmienić nazwę folderu głównego, muszę edytować wszystkie formulars (2 jeszcze). Czy istnieje stała lub funkcja, która reprezentuje katalog główny/nazwę?

Czytałem o stałej ROOT. Czy powinienem używać tej zmiennej?

Rozwiązanie

  1. Można zdefiniować stałą ROOT_NAME w aplikacji \ Webroot \ index.php z basename(ROOT).
  2. Możesz użyć funkcji HTML Helper url(). Na przykład w atrybucie działania znacznika formularza:

    $ this-> Html-> url (array ('controller' => 'ctrl', 'action' => 'add'));

Odpowiedz

4

Cóż, można spróbować to normalne Ol 'funkcję PHP: basename

basename(APP); 

Od tego nie robi' t faktycznie otworzyłem własną instalację Cake. Spróbuj tego:

basename(dirname(APP)); 
+0

To tylko zwraca "aplikację". Ale chcę użyć "myfolder", który jest katalogiem głównym mojej instalacji CakePHP. – ComFreek

+0

Dzięki kodowi sekundowemu działa dobrze! Edytowałem to pod 'basename (ROOT)' , więc mogę go użyć w 'app \ webroot \ index.php' aby zdefiniować stałą. – ComFreek

1

Ta strona zawiera listę stałych, które mogą być użyte, http://book.cakephp.org/view/1141/Core-Definition-Constants

+0

Dzięki, ale APP podaje pełną ścieżkę na XAMPP: C: \ xampp \ htdocs \ myfolder1 \ ... Ale to oczywiście powoduje błąd w mojej przeglądarce. Następnie wypróbowałem APP_PATH, która jest pusta i CAKE, która zwraca tylko "CAKE"! – ComFreek

1

Możesz sprawdzić trasy /var/www/yourprojectname/cake/conf/paths.php

można uzyskać wszystkie stałą zmienną są używane przez CakePHP.

Mam nadzieję, że to pomaga.

Pozdrawiam, Archit.

+0

Nie można znaleźć zmiennej przechowującej tylko nazwę katalogu głównego. Zobacz odpowiedź Charlesa. – ComFreek

3

musiałem uzyskać URL głównego dokumentu CakePHP używać w JavaScript, a udało mi się go skonfigurować używając roztworu powyżej:

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

i ten kawałek kodu - $this->Html->url('/') - działa idealnie w uzyskiwaniu katalogu głównego/adresu URL dla CakePHP.

Powiązane problemy