Class' App \ models \ Test'尝试访问模型时找不到

时间:2015-02-10 12:30:13

标签: php laravel

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

但是没有用。

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

namespace App\models;

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

答案 2 :(得分:0)

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

use App\models\Test;

这是正确的方法:

use App\Models\Test;