2017-08-02 93 views
-1

我剛開始使用Laravel,想創建一個自定義類,並且想要在每個控制器中調用此類。爲此,我在app/Library/文件夾中創建了一個Customer類。什麼是composer.json中的autoload,我們如何在laravel中使用它?

當我試圖通過自動加載作曲家這個庫,JSON它給了一個錯誤:

Could not scan for classes inside "App/Library/Customer" which does not appear to be a file nor a folder.

我們如何使用自動加載類控制器?

Customer.php

<?php 
    namespace App\Library; 
    use App\Model\User; 
    class Customer 
    { 
     public function login($user_name,$password){ 
      $data = User::where('email', $user_name) 
       ->where('password', $password) 
       ->first(); 
      return $data->id'; 
     } 
    } 

Composer.json

{ 
    "autoload": { 
     "classmap": [ 
      "database", 
      "app/Library/Customer" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     }, 
     "files" : [ 
      "app/Helper/helper.php" 
     ] 
    } 
} 

回答

0

的自動加載部分,我想你不理解作曲家自動加載是有什麼。您可以使用它來包含庫及其依賴項,而不是針對您在應用中創建的類。

<?php 
use App\Library\Customer; 

你需要把這個在每個控制器:

什麼,你最好做的,當你創建控制器要使用如類添加爲。

0

你應該從類映射組中刪除它,並添加適當的名稱空間和類。你可以看到所有的PSR-4標準在這裏:http://www.php-fig.org/psr/psr-4/

比方說你有一個文件夾結構是這樣的:

app 
    -> Library 
     -> Customer.php // namespace App\Library; class Customer{} 
    -> Model 
     -> User.php // namespace App\Model; class User{} 

和所有的文件應該只要你使用正確的命名空間和類名自動加載。

通過你應該使用驗證,而不是正面的方式:https://laravel.com/docs/5.4/authentication

0

沒有必要classmap爲已經psr-4自動加載到位。你必須瞭解它是如何工作的。那麼你可以簡單地導入使用use關鍵字你的類,像這樣

<?php 

use App\Library\Customer; 

欲瞭解更多信息,請閱讀PSR-4: Autoloader並以此爲Tutorial

相關問題