尝试访问模型时找不到类“App\\models\\Test”

新手上路,请多包涵

我正在尝试学习 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

但是没有用。

原文由 Hardik Ranpariya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 642
2 个回答

您的 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();
    }
}
?>

原文由 lukasgeiter 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 namespace App\models;

这行得通,只是代码中缺少名称空间,其余所有代码都是完美的

原文由 Udhav Sarvaiya 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏