如何在Laravel中将include_once()与命名空间一起使用 - php

我是laravel的新手,正在导入一个现有的php网站。
我创建了一个名为“ List”的控制器,然后需要创建一个类的对象,该对象编码在一个文件中,该文件已被include_once()包含在其中,如图所示,

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;


$INCLUDE_ROOT = 'path/to/file';
include_once($INCLUDE_ROOT . "ServiceDetails.class.php");

class Lists extends Controller
{
    public function show()
    {
        $objServiceDetails= new ServiceDetails;
        .........
        ........
     }
 }

但是我收到一个错误

致命错误:找不到类'App \ Http \ Controllers \ ServiceDetails'

我对命名空间“ use”和“ as”没有太多想法。
也许这就是为什么我不能解决这个问题。
创建新对象时,它仅在名称空间位置搜索类,但是我认为它也应该在包含的文件中查找。

参考方案

如果当前文件中有一个命名空间,PHP将尝试在当前命名空间中查找类,如果找不到该类,则会出现致命错误。您应该打开ServiceDetails.class.php类,以验证文件开头(在namespace ...;之后)是否存在<?php。如果不是,您可以在以下步骤简单地添加Lists文件:

use App\Http\Controllers\Controller;

下一行:

use ServiceDetails

如果是,则应复制该名称空间并添加以下行:

use namespaceyoucopied\ServiceDetails;

当然在namespaceyoucopied位置,您需要放置正确的复制名称空间,使其看起来像这样:

use A\B\C\ServiceDetails;

您也可以查看How to use objects from other namespaces and how to import namespaces in PHP或PHP namespaces manual

您如何知道在PHP require_once()语句中使用的正确路径 - php

我想在几乎所有其他php文件中都包含一个Web应用程序的根目录中的config.php文件。因此,大多数人都这样写:require_once("config.php"); 有时require_once("../config.php"); 甚至require_once("../../config.php…

Laravel Blade模板尝试获取非对象的属性时如何返回null而不是ErrorException - php

我正在编写一些Laravel Blade模板,并且我的模型可能包含空对象。我非常想尝试获取对象属性,如果有错误,则返回null。因此,不必编写以下代码:@if ($model->child_object_that_may_be_null) {{ $model->child_object_that_may_be_null->interesti…

Laravel 5错误报告抑制 - php

在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…