2013-06-18 27 views
24

Tôi đang cố gắng "bao gồm" một tập lệnh php vào một trong các khung nhìn của tôi (landing.blade.php).Bao gồm các tệp PHP với khuôn khổ Laravel

Các kịch bản là ở:

/laravel-master/public/assets/scripts/config.php 

Khi tôi cố gắng bao gồm mã này trong giao diện:

<?php include_once('/assets/scripts/config.php'); ?> 

tôi nhận được lỗi: include_once(/assets/scripts/config.php): failed to open stream: No such file or directory

Đây là trên localhost sử dụng MAMP . Tôi không chắc chắn nếu có một bộ quy tắc khác nhau tôi cần phải sử dụng với Laravel 4 để bao gồm một tập tin php. Cảm ơn sự giúp đỡ của bạn!

+0

'/ asset/scripts/config.php' có nghĩa là nó nằm trong thư mục gốc của hệ điều hành của bạn. Sử dụng đường dẫn tuyệt đối hoặc thay đổi nó thành tương đối. – djthoms

+0

Bạn có thể giải thích về điều đó không? Con đường tương đối sẽ trông như thế nào? ../assets/scripts/config.php? – user1072337

+0

Một thường xuyên chạy vào lỗi này, và để nhanh chóng khắc phục sự cố, hãy làm theo các bước sau: stackoverflow.com/a/36577021/2873507 –

Trả lời

38

Trước tiên, bạn không nên giữ các tệp PHP trong thư mục public, chúng phải được giữ bên trong thư mục app. Tôi khuyên bạn nên tạo một thư mục bên trong app, chẳng hạn như includes và đặt các tệp của bạn ở đó. Sau đó, bạn bao gồm nó, làm:

include(app_path().'/includes/config.php'); 

Mặc dù, có vẻ như bạn đang cố gắng tải một số tệp cấu hình, tôi khuyên bạn cũng nên kiểm tra cách cấu hình xử lý riêng của Laravel. Ví dụ, nếu bạn tạo một tập tin bên trong thư mục myapp.phpapp/config, Laravel sẽ xử lý nó tự động cho bạn, miễn là bạn muốn có một số cặp khóa-giá trị, như thế này:

<?php 

return array(
    'name'  => 'Raphael', 
    'gorgeous' => true 
); 

Sau đó, bạn có thể lấy những giá trị sử dụng lớp Config:

Config::get('myapp.name'); // Raphael 

Đây là một giải pháp tốt hơn bởi vì bạn cũng có thể tận dụng lợi thế của Laravel của .

+0

Tôi đang cố tải tệp cấu hình này để đăng nhập Facebook. Chứa appID, bí mật, v.v ... Điều này có thay đổi câu trả lời của bạn không? – user1072337

+0

Vâng, nếu bạn không thể thay đổi mã sẽ sử dụng tệp cấu hình, thì nó sẽ hiển thị 'bằng cách sử dụng công cụ cấu hình được xây dựng của Laravel' không hợp lệ, nhưng phần còn lại vẫn được tính. – rmobis

+0

Tôi nên đặt: $ app = app(); bao gồm ($ app ['path.app']. '/ Includes/config.php'); theo quan điểm của tôi? – user1072337