我前几天开始学习Yii框架,我想出了这个问题。
我已经下载了基本的应用程序模板(以便您了解我的应用程序的结构)。
我想在“views / layouts / main.php”中使用“models /”中的一个类函数,但是,我不确定如何从“main.php”访问它们。我在互联网上搜索,没有一个解决方案帮助过我。
你建议我做什么?因为我目前对解决方案一无所知。我是这个框架中的新手,所以,不要难以评判我:)
更新:[解决方案]
// use statement on top of main.php like the other use statements
use app\models\Modelname;
// anywhere in the file
....
$myModel = new Modelname;
$myModel->myFunction();
...
// Or if it is a static function:
Modelname::myFunction();
这是从文件夹 models / 访问模型文件(类)的方法,例如 views / layouts / main.php 。
答案 0 :(得分:1)
这是交易 - 视图实际上只是一个"视图"。 View应该只代表一些数据,但不能对这些数据做些什么。你不想在视图中有任何逻辑。
无论如何,如果你想从你的模型中展示一些东西 - 你应该通过控制器传递这个模型,它会呈现你的视图。
控制器将如下所示:
$model = new Device;
$this->render('index', array(
'model' => $model
));
然后你可以在视图中使用它,通常是从模型中获取一些数据。
您也可以直接在视图中获取它,但这不是一个好习惯。
Here您可以阅读一些关于模型和最佳实践的基础知识,如何使用它们。
更新[Yii 1.x]
要在main.php中专门使用Model-Class,请在要使用它的位置导入它:
Yii::import('application.models.LoginForm');
之后,您通常可以使用模型类中的函数。
更新2
Yii2中的命名空间:
use yii\models\LoginForm;
在main.php布局文件的开头。另请参阅" Layouts"部分here.