【问题标题】:Unable to access models and helper classes in custom class file laravel 5无法访问自定义类文件 laravel 5 中的模型和辅助类
【发布时间】:2015-03-15 12:22:45
【问题描述】:

我在 app/Classes/Common.php 中创建了一个通用类 但是每当我尝试访问类函数中的模型时。

$new_booking_request = BookingRequest::where('host_id','=',Auth::id())

我收到了这个错误

Class 'App\Models\BookingRequest' not found

即使是 Auth、URL 和 Cookie 等其他类也无法正常工作。 有没有办法将所有类都纳入我的 Common 类范围?

【问题讨论】:

  • use Session, Cookie;(在命名空间之后)或\Session::get()

标签: php laravel laravel-5


【解决方案1】:

当您的命名空间错误或您忘记命名空间时,您会遇到此问题。

由于 common.php 在 App/Classes 中,因此在 Common.php 中执行如下操作:

<?php namespace App\Classes;

use View, Auth, URL; 

class Common {
    //class methods
}

还要确保您的模型类具有正确的命名空间,如果 BookingRequest.php 位于 App\Models 内,那么在 BookingRequest.php 内执行以下操作:

<?php namespace App\Models;

    BookingRequest extends \Eloquent {
        //other definitions
    }

那么,如果您希望在其命名空间之外或在另一个命名空间中使用 BookingRequest.php,如下所示:

<?php namespace App\Classes;

use App\Models\BookingRequest;

use View, Auth, URL; 

    class Common {
        //class methods
    }

【讨论】:

    【解决方案2】:

    在 Laravel 5 中,一切都是命名空间的,确保你的类有一个正确的命名空间,并且你使用你指定的同一个命名空间来调用它。

    要在另一个类中包含类,请确保使用use 关键字在类定义之上导入必要的类。您也可以使用\ 全局调用该类。例如:\Auth\URL\Cookie

    对于 L5 中的命名空间,这里有一个简单的示例:

    <?php namespace App\Models;
    
    class BookingRequest {
      // class definition  
    }
    

    然后在尝试调用该类时,要么调用函数的完整命名空间路径,要么包含函数。

    <?php
    
    class HomeController extends Controller {
    
      public function index()
      {
        $newBookingRequest = App\Models\BookingRequest::where('host_id','=',Auth::id());
      }
    
    }
    

    <?php namespace App\Controllers;
    
    use App\Models\BookingRequest; // Include the class
    
    class HomeController extends Controller {
    
      public function index()
      {
        $newBookingRequest = BookingRequest::where('host_id','=',Auth::id());
      }
    
    }
    

    PS:

    请在定义类属性和方法时使用camelCase,因为这有助于在使用 L5 框架时更好地进行代码样式和命名约定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      相关资源
      最近更新 更多