Php Laravel:文件\u获取\u内容不工作

Php Laravel:文件\u获取\u内容不工作,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在Laravel学习,我在Laravel 5.4和XAMPP 5.6.23中遇到了一个奇怪的错误。 假设我有一个带有ApicController和UserController的Laravel应用程序。 在APIController.index()函数中: public function index() { $users = User::all(); return response()->json($users); } 在UserController.index()函数中

我在Laravel学习,我在
Laravel 5.4
XAMPP 5.6.23
中遇到了一个奇怪的错误。 假设我有一个带有ApicController和UserController的Laravel应用程序。 在APIController.index()函数中:

public function index()
{
    $users = User::all();
    return response()->json($users);
}
在UserController.index()函数中:

public function index()
{
    $url = route("api.index");
    $content = @file_get_contents($url);
    dd($content);
}
注意
路线(“api.index”)
返回”http://localhost:8000/api“
,并且正在映射到APIController.index()函数。
在php.ini中,我启用了“allow\u url\u fopen”。问题是file_get_contents()总是超过最长时间。当我替换$url=“
https://jsonplaceholder.typicode.com/comments
”,但是,它可以工作。我不知道出了什么问题,因为Laravel没有向我显示任何错误,而是超过了最长时间。有人能帮忙吗?谢谢大家!

在谷歌搜索了很多次之后,我的答案是:我无法读取来自与控制器所在项目相同的API数据。我必须在jquery中编写函数readAPI(在视图中而不是在控制器中)。遗憾的是,您可以访问
http://localhost:8000/
从您的电脑(XAMPP之外)下载。
但是,您需要检查访问
http://localhost:8000/
在运行PHP的XAMPP内部

  • 登录到XAMPP服务器
  • 试试
    $curl-ihttp://localhost:8000
  • 我猜:

  • :8000未打开
  • 您可能需要更改域、端口或路径

  • 你能试试File::get($filename)吗?正如这里所解释的,@manian为什么这对他有帮助
    File::get()
    只是返回File\u get\u contents()@Ohgodwhy,几个月前同样的问题发生在我身上&File::get()帮助我解决了这个问题。我试图回忆起当时我的问题的确切原因,但我还记不起来(记忆不好)。我从我的参考资料中发布了这个链接。如果你打算重用控制器逻辑,那么这样做是荒谬的。您可以直接调用laravel中的其他控制器方法。这可能有助于重用web的api方法。@manian我使用了File::get(),但它不适用于从url检索的文件。我尝试了File::getRemote(),但它说“getRemote方法不存在”。我做错什么了吗?