我正在尝试学习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
但是没有用。
答案 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;