use app\controllers\SiteController;
$s = 'SiteController';
$model = new $s();
$s->index();
想把类名用变量代替 应该怎么写呢?
上面写法提醒没有这个类 Class 'SiteController' not found
不用use,尝试以下写法:
你不应该是使用$model->index();
来调用么
use app\controllers\SiteController;
$s = 'SiteController';
$model = new $s();
$s->index();
想把类名用变量代替 应该怎么写呢?
上面写法提醒没有这个类 Class 'SiteController' not found
不用use,尝试以下写法:
你不应该是使用$model->index();
来调用么
<form action="index.php?r=model" method="post">
Name:<input name="name"><br>
ID:<input name="id"><br>
Sex:<input name="sex"><br>
Age:<input name="age"><br>
<input type="submit" value="submit">
</form>
表单视图是这样的
public function actionIndex(){
$student = new Student();
if($student->load(Yii::$app->request->post())){
return $this->render('student_info',['student'=>$student]);
}else{
return $this->render('student');
}
}
控制器里面是这样的。为什么load返回的是false,属性名和表单名是相同的
load方法会读取键为类名的数组,并绑定到AR对象,所以你的表单name应该这样写:
你也可以使用yii自带的wiget
,或者yii\helpers\Html
下的active
系列方法生成表单。
表单文本框name不对, 应该是Student[name] Student[sex] 这样才可以
用yii提供的方法建立表单
他们都说了你表单错了,确实也错了。但你还可以修改load的参数来实现
Yii::$app->request->post 他这个方法,会自动都model的rule验证嘛?
自定义表单,第二个参数为空,要加上
$student->load(Yii::$app->request->post(), ”)
1.我用composer新生成一个yii(2.0.3)应用到xunwu这个文件夹,我只把这一个文件夹上传到我的服务器上,用http://域名.com/xunwu/web/index.php
访问不到,请问为什么会这样?需要上传其他文件夹吗?(例如framework文件夹在2.0.3里不需要吧?)还是缓存问题?(但这是刚用composer生成的没有修改过的)
2.如果是在本地制作、建立数据库、测试之后再上传(即不是刚生成的应用),除了db.php(数据库配置)和域名需要修改外,缓存要如何删除?已经建好了站迁移服务器略蛋疼。
请详细说明一下,谢谢!
请问是怎么样上传?建议使用git
如果你指的是需要在网络上发布你的网站,那么你的网站根目录应该是web文件夹,而非YII2 ROOT,如果你是虚拟主机,还需要参考文档的共享主机那一章节。
同问这个问题。。。到底需要上传哪些到哪里?
这样就解决了?
比如我要输出:
<!-- The HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
怎么做?
只想IE9或更高的浏览器包含一个CSS文件,可以使用如下选项:
这会使包中的CSS文件使用以下HTML标签包含进来
参见:http://www.yiichina.com/doc/guide/2.0/structure-assets
安好了,不会用。比如那个添加rule的时候那个类名
填啥我都不知道。试了很多都不行。。。
示例说明:
新建common\rbac\AuthorRule(此类extend yii\rbac\Rule), 然后新建rule的时候,输入
rulename:AuthorRule
classname:\common\rbac\AuthorRule
提交即可成功
这个建议你还是先去看看视频,看看别人的代码,再来研究。
也是搞不太清要怎么填写,后来看了一下源码,应该是要输入:
1、rule name:随意取的名字
2、class name:是一个类名,继承自yii\rbac\Rule的子类,其实就是自己写的rule实现
看一下保存rule的实现:
Yii2 客户端验证有时候需要 alert 弹出错误消息,如何实现?
yii默认是把错误消息显示在表单后面的。 有时候前端需要直接 alert错误消息,这个时候怎么实现呢?
验证消息的提示是通过yii.validation.js
最终实现的,这个js文件在yii/web/assets/下第一个文件夹里,你找到这段语句:
然后在
之后添加一句:
然后保存,这样就可以使得验证错误信息在input触发blur的时候,不仅显示在页面,也会弹出对话框了。
By ArthurSS 2015/4/3
可以使用CSS定位消息的显示位置吧。
我描述大概的情景:我使用yii中内置的CUploadedFile上传文件后,重新上传图片时,由于上传文件为空,所以我把原来的字段值重新赋回去,表示不修改原来的图片,但是在调用save()
方法保存修改时,之前被赋值的图片字段居然被清空了,经过我排查后,最后锁定问题来自于调用save()
方法时默认触发validate()
方法进行规则验证()后,之前被赋值的图片字段居然变成了空值(注意赋值操作是在save操作之前),莫名其妙被清空掉了,不知道大家有没有遇到过这样的问题?
如果你不想改掉这个字段的话,可以把它unset掉
那应该是你没有判断是否为空,你將空的数据也传入了数据库,那数据库就帮你保存啦
yii 中使用User::model()->find('username=:name',array(':name'=>$this->username));
创建模型出现Call to a member function find() on a non-object错误,而改成$userModel=new User();
就没事,何解啊?我的模型User.php都已经定义好了,求高手解答啊!!!
说明User::model()不是一个模型
有可能是你在User里面没有写model这个静态方法呗
if ($model->load(Yii::$app->request->post()) && $model->save()) {
// 获取用户输入的产品名
Yii::$app->request->post("pro_name");//没获取到,请问各位是如何解决的?
}
这很简单啊,你已经做好的数据传递(load)和保存(save),在函数里输出试试:
如果没有赋值显示null,那就是你的model或者view的问题了
这个网站的后台管理功能有:
自建页面
页面可以设置布局
页面里可以添加一些组件,组件可拖动,点击编辑可配置组件的一些内容(比如滑动图)
问题:
这个,类似建站系统么?
这个网站后台的源码能给吗