2014-05-18 10 views
6

Trong ứng dụng của tôi, để di chuyển tệp vào một thư mục cụ thể, tôi cần biết đường dẫn thư mục chung trong thao tác điều khiển. Tôi đọc giải pháp loại khác nhau nhưng không nhận được giải pháp dễ dàng. Tôi biết rằng trong chế độ xem, chúng tôi có thể dễ dàng nhận được đường dẫn thư mục công khai bằng cách sử dụng trình trợ giúp xem $this->basePath();. Tôi chính xác muốn điều này trong hành động điều khiển. Bất kỳ ai cũng có thể hướng dẫn tôi làm sao tôi có thể đạt được điều đó. Cảm ơn trước.Zend 2 :: nhận đường dẫn thư mục công cộng hoặc basePath() dễ dàng trong hành động điều khiển

Trả lời

12

index.php đặt dir làm việc hiện tại để bạn gốc ứng dụng (thư mục chứa composer.json, init_autoloader.php, vv)

Chừng nào bạn chưa gọi chdir nơi khác trong ứng dụng của bạn, bạn có thể gọi getcwd() và nó sẽ luôn luôn trả lại đường dẫn đến gốc ứng dụng của bạn.

Kể từ thư mục nào là liên quan đến điều đó, bạn có thể nhận được con đường bằng ...

$publicDir = getcwd() . '/public'; 
0

Bạn có thể sử dụng xem những người giúp đỡ từ bên trong một bộ điều khiển trong ZF2 vì nó thể hiện herehere. Bạn có thể thử điều này cho trường hợp của bạn:

$renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface'); 
$url = $renderer->basePath('the_ressource_you_want_to_get_from_public_folder'); 

Hy vọng đây là những gì bạn đang tìm kiếm!

2

Trong công thư mục chỉnh sửa của bạn tập tin của bạn tên là index.php thêm chỉ có hai dòng

define('BASE_PATH', realpath(dirname(__DIR__))); 
define('PUBLIC_PATH', BASE_PATH.'/public'); 

bạn có thể sử dụng trong mã của bạn như

print_r(BASE_PATH); 
print_r(PUBLIC_PATH); 
0

Nếu bạn muốn bao gồm một tập tin từ công chúng thư mục (độc lập với vị trí của tệp index.php): include_one ("./public/your-file.php");

0

Bạn nên cố gắng này nếu bạn muốn thư mục công cộng:

$publicPath = $_SERVER['DOCUMENT_ROOT']; 

Hoặc thử này nếu bạn muốn basepath:

$basePath = dirname($_SERVER['DOCUMENT_ROOT']); 
Các vấn đề liên quan