Php 如何在Laravel模型中使用特征?
你好,我是拉威尔初学者 我想创建trait并在我的模型中使用它,但在运行时我得到了一个错误,即找不到trait 我的特点:Php 如何在Laravel模型中使用特征?,php,laravel,laravel-5.1,Php,Laravel,Laravel 5.1,你好,我是拉威尔初学者 我想创建trait并在我的模型中使用它,但在运行时我得到了一个错误,即找不到trait 我的特点: namespace App; use Illuminate\Support\Facades\Schema; trait GeneralModel { public static function testStaticFunction() { dd('test'); } } 我的模型: namespace App; use Illu
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();
}
}
收到错误
未找到特征“App\GeneralModel”请检查App文件夹中的GeneralModel.php。并在项目根路径中执行以下命令
php artisan dump-autoload
你必须使用
Composer dump-autoload
在命令行中
希望对您有所帮助在
composer.json
中添加以下内容:
"autoload" : {
"classmap": [
"database/seeds",
"database/factories"
],
"files" : [
"app/GeneralModel.php" // <----------- ADD THIS
],
"psr-4" : {
"App\\": "app/"
}},
“自动加载”:{
“类映射”:[
“数据库/种子”,
“数据库/工厂”
],
“文件”:[
“app/GeneralModel.php”//确保您的traitGeneralModel.php
与Comment
模型位于同一文件夹中。基于您的命名空间,它们应该位于app
文件夹中。基于您将事物命名为常规旧继承的方式,可能是更好的解决方案。