【问题标题】:Class 'App\models\Test' not found when try to access model尝试访问模型时找不到类“App\models\Test”
【发布时间】:2015-02-10 12:30:12
【问题描述】:

我正在尝试学习 laravel 框架。

当时我尝试使用模型时出现了一些错误。

在我的测试控制器中

 <?php 
        namespace App\Http\Controllers;

        use App\models\Test;

        class TestController extends Controller {

            public function __construct()
            {
                $this->middleware('guest');
            }

            public function editData($id) {
                $result = DB::select('select * from users where id = ?', array($id));
                $data['data'] = $result[0];
                return view('myview', $data);
            }

       }
?>

在我的模型中

模型路径是app/models/Test.php

模型名称是 Test.php

<?php
use Illuminate\Database\Eloquent\Model;
class Test extends Model {
    protected $table = 'users';
    public static function getMyData(){

         $user = Test::find();

    }
}
?>

输出:

FatalErrorException in TestController.php line 56:
Class 'App\models\Test' not found

我也在尝试这个命令。

composer dump-autoload

但不工作。

【问题讨论】:

  • 你忘了给Test 类添加命名空间

标签: php laravel


【解决方案1】:

您的 Test 模型根本不在任何命名空间中。您需要通过以下方式引用它:

use Test;

或:

\Test::getMyData();

或者只是把它放在你现在尝试引用它的命名空间中:

<?php
namespace App\models;

use Illuminate\Database\Eloquent\Model;
class Test extends Model {
    protected $table = 'users';
    public static function getMyData(){
        $user = Test::find();
    }
}
?>

【讨论】:

    【解决方案2】:

    您错误地导入了模型
    'm' 个模型很小

    use App\models\Test;
    

    这是正确的方法:

    use App\Models\Test;
    

    【讨论】:

    • 请在您的答案中添加一些解释,以便其他人可以从中学习。给定的问题在命名空间 App\modelsApp\Models 中不包含任何类 Test
    • 这对我有帮助!谢谢!
    【解决方案3】:

    在模型中,编写如下代码,

    namespace App\models;
    

    这可行,只是代码中缺少命名空间,其余代码都是完美的

    【讨论】:

      【解决方案4】:

      修改 vendor/barryvdh/laravel-ide-helper/config/ide-helper.php 中的配置

      'model_locations' => array(
          'app\Models',    //your models' location
      ),
      

      【讨论】:

        【解决方案5】:

        试试这样的

        $ModelName = new \App\Models\ModelName();

        【讨论】:

        • 请在您的答案中添加一些解释,以便其他人可以从中学习。给定的代码不包含任何名为 ModelName 的类
        猜你喜欢
        • 2019-01-19
        • 2017-05-14
        • 2021-12-28
        • 2017-06-07
        • 2017-10-04
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多