我正在努力学习laravel框架。
当我尝试使用模型时,我遇到了一些错误。
在我的测试控制器中
<?php
namespace AppHttpControllers;
use AppmodelsTest;
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 IlluminateDatabaseEloquentModel;
class Test extends Model {
protected $table = 'users';
public static function getMyData(){
$user = Test::find();
}
}
?>
输出:
FatalErrorException in TestController.php line 56:
Class 'AppmodelsTest' not found
我也在尝试这个命令。
composer dump-autoload
但不起作用。
您的Test
模型根本不在任何命名空间中。您需要通过以下方式引用它:
use Test;
或:
Test::getMyData();
或者把它放在你现在试图引用的命名空间中:
<?php
namespace Appmodels;
use IlluminateDatabaseEloquentModel;
class Test extends Model {
protected $table = 'users';
public static function getMyData(){
$user = Test::find();
}
}
?>
在模型中,编写以下代码,
namespace Appmodels;
这会起作用,只是代码中缺少命名空间,其余所有代码都是完美的
您错误地导入了模型
模型中的"m"是小型
use AppmodelsTest;
这是正确的方式:
use AppModelsTest;
修改vendor/barryvdh/laravel-ide-helper/config/ide-helper.php 中的配置
'model_locations' => array(
'appModels', //your models' location
),
尝试类似的东西
$ModelName=new\App\Models\ModelName();