使用Laravel框架包含PHP文件

31

我正在尝试将一个PHP脚本“include”到我的视图之一(landing.blade.php)中。

该脚本位于:

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

当我尝试在视图中包含这段代码:

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

我遇到了错误:include_once(/assets/scripts/config.php): failed to open stream: No such file or directory

这是在使用MAMP的本地主机上发生的。 我不确定是否需要使用Laravel 4中不同的规则来包含一个php文件。 谢谢您的帮助!


/assets/scripts/config.php 表示它位于您操作系统的根目录。请使用绝对路径或更改为相对路径。 - djthoms
你能详细说明一下吗?相对路径会是什么样子? ../assets/scripts/config.php ? - user1072337
经常会遇到这个错误,为了快速排除故障,请按照以下步骤操作:stackoverflow.com/a/36577021/2873507 - Vic Seedoubleyew
3个回答

50

首先,不建议将您的PHP文件保存在public目录中,而应该将它们保存在app文件夹内。我建议您在app内创建一个文件夹,例如includes,并将文件放在那里。然后,您可以通过以下方式包含它:

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

虽然看起来你正在尝试加载一些配置文件,但我建议你也查看一下Laravel自己处理配置的方式。例如,如果你在app/config文件夹中创建了一个myapp.php文件,并且拥有像这样的键值对,Laravel会自动为你处理:

<?php

return [
    'name'     => 'Raphael',
    'gorgeous' => true
];

您可以使用Config类检索这些值:

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

这是更好的解决方案,因为您还可以利用Laravel的环境配置


我应该把以下代码放在视图文件的哪里呢? $app = app(); include($app['path.app'].'/includes/config.php'); - user1072337
app_path() 是在 Laravel 4 中引入的。在 Laravel 3 中请使用 path('public') - fregante
@mobis: 为什么不呢?我需要使用一个wsdl文件。否则你会推荐将这个文件放在哪里? - davejal
不,对于 .wsdl 文件来说这样就可以了。你只需要不实际 include 它,因为它不是 PHP,可能只需将其作为参数传递给函数即可。 - rmobis
1
我已经开始为这个常见的错误制作故障排除清单,链接在这里:stackoverflow.com/a/36577021/2873507 - Vic Seedoubleyew
显示剩余6条评论

2
你可以在HTML中使用包含文件,不需要使用连接符。
@include('foldername.filename')

@include('filename')

1
这是另一种方式:

require 'file path';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接