我有一个yii2项目和控制器MyModelController.php在那里,我想在那里获得模型
namespace app'controllers;
use yii'web'Controller;
use yii'db'Command;
class MyModelController extends Controller
{
public function actionPhoto()
{
$model=new myModel;
return $this->render('photo', ['model' => $model]);
}
}
和型号
MyModel.php:
use namespace app'models;
use yii'base'Model;
class MyModel extends ActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'my_model';
}
public function rules()
{
... some rules
}
public function relations()
{
return array(
);
}
//like fields in my table in mysql
public function attributeLabels()
{
return array(
'id' => 'ID',
'my_model_atribute' => 'MyModel',
);
}
public function search()
{
... some search
}
}
它们分别处于/basic/models
和/basic/controllers
。
当我在我看来它时,我得到了这个错误:
Class 'app'controllers'MyModel' not found
UPD1我试图让它出现在photo.php
use yii'helpers'Html;
$model=new MyModel;
var_dump($model);
而且我仍然错误地认为找不到类。UPD2我将命名空间更改为 basic'models
并按实际情况public_html'basic'models
,但它仍然在那里找不到类/
您必须先使用模型。
use yii'helpers'Html;
use basic'models'Mymodel
$model=new MyModel;
var_dump($model);
或
use yii'helpers'Html;
$model=new 'basic'models'MyModel;
var_dump($model);
namespace basic'controllers;
use yii'web'Controller;
use yii'db'Command;
class MyModelController extends Controller
{
public function actionPhoto()
{
$model=new myModel;
return $this->render('photo', ['model' => $model]);
}
}
我的模型.php: 使用命名空间基本''模型;
use yii'base'Model;
class Model extends ActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'my_model';
}
public function rules()
{
... some rules
}
public function relations()
{
return array(
);
}
//like fields in my table in mysql
public function attributeLabels()
{
return array(
'id' => 'ID',
'my_model_atribute' => 'MyModel',
);
}
public function search()
{
... some search
}
}
如果你的代码是
app'controllers'MyModel
因为你的模型(MyModel)在文件夹/models/MyModel上.php并且带有命名空间app''models
所以你必须打电话给
use app'models'MyModel;
并声明它
$model = new MyModel();
喜欢这个
namespace app'controllers;
use yii'web'Controller;
use yii'db'Command;
// this to call your models with namespace
use app'models'MyModel;
class MyModelController extends Controller
{
public function actionPhoto()
{
// this to declare your model
$model = new myModel();
return $this->render('photo', ['model' => $model]);
}
}