2017-06-05 40 views
0

你好,我是初學者laravel如何在Laravel模型中使用特徵?

我想要的性狀和在我的模型,但在運行時我得到了錯誤的特徵沒有找到

我的特點使用它:

namespace App; 
use Illuminate\Support\Facades\Schema; 

trait GeneralModel 
{ 
    public static function testStaticFunction() 
    { 
     dd('test'); 
    } 
} 

我的模型:

namespace App; 
use Illuminate\Database\Eloquent\Model; 

class Comment extends Model 
{ 
    use GeneralModel; 
} 

我控制器

namespace App\Http\Controllers; 

use App\Comment; 

class SearchController extends Controller 
{ 
    public function find() 
    { 
     Comment::testStaticFunction(); 
    } 
} 

錯誤接收

特質 '應用\ GeneralModel' 未找到

+0

確保您的特徵'GeneralModel.php'與'Comment'模型位於同一個文件夾中。根據你的名字空間,他們應該在'app'文件夾中。 – Sandeesh

+2

基於你如何命名常規舊繼承可能是一個更好的解決方案。 – jfadich

回答

1

請檢查GeneralModel.php在app文件夾。並在您的項目根路徑中執行以下命令。

php artisan dump-autoload 
0

,你必須使用

Composer dump-autoload 

在命令行中

希望這有助於

1

composer.json補充一點:

"autoload" : { 
"classmap": [ 
    "database/seeds", 
    "database/factories" 
], 
"files" : [ 

    "app/GeneralModel.php" // <----------- ADD THIS 
], 
"psr-4" : { 
    "App\\": "app/" 
}}, 

然後運行composer dump-autoload