Unknown Method – yii\base\UnknownMethodException
Calling unknown method: app\controllers\SiteController::redirect()
请问怎么办直接继承conroller基类就可,继承我自己的写的基类就出错 ,我自己的基类是继承controller
如果使用redirect请确定继承yii\web\controller,而不是yii\base\controller
顶楼上的回答
Unknown Method – yii\base\UnknownMethodException
Calling unknown method: app\controllers\SiteController::redirect()
请问怎么办直接继承conroller基类就可,继承我自己的写的基类就出错 ,我自己的基类是继承controller
如果使用redirect请确定继承yii\web\controller,而不是yii\base\controller
顶楼上的回答
现在在做一个项目,由于一个index页面需要切换不同的内容,所以把内容分开保存在几个页面,再用ajax引入,但是这几个页面就用不了activeform的组件了,所以直接用html写的,那么html写的单选框,多选框,怎么进行保存呢。
我感觉你的思路不对,既然是切换页面,那就给url传参数把,比如设置一个参数type
如果是1 就让它redirect到 属于1的那个页面 比如说是index1.php
以此类推
为啥就用不了activeform?
html写的内容,直接读取值存数据库,有困难?
即使不用activeform,用html写,直接通过form标签提交数据进行保存就好,不清楚问题点在哪,如果是要获取单个数据,直接用js或jquery获取输入框内容就好了。
方向错了,为什么要用AJAX引入页面呢?include啊
mysql操作的时候,如果操作有异常,例如表名没找到,yii会自动跳转到错误显示页面,如图:
而且下面还会有详细的错误信息。
但是我又不想暴露有关自己数据库里的一些详细信息,
可以设置错误的显示方式吗,如何设置,比如不直接暴露sql语句的错误。
默认只有开发环境才会显示,生产环境不会显示具体错误信息。
在初始化时有选择,你部署到生产环境时选择生产环境就行。
再web/index.php 中将debug设置为 false即可。
一个是楼上 ,还有就是你看下配置文件的errorHandler这个配置项,然后看实现具体function和页面你就知道咋弄了
自己重写 site/error
很简单的。
在文件入口处把开发环境设置成false
如题,下面的代码在单纯的php文件可以实现逐行打印效果,但是放到controller的action里面,就不起作用了,哪位大神遇到过?如何解决的?
for ($i = 0; $i < 3; $i++) {
echo "当前时间:" . date("Y-m-d H:i:s") . "<br>";
ob_end_flush();
flush();
ob_start(function($buffer) {
return $buffer . str_repeat(' ', max(0, 4097 - strlen($buffer)));
});
sleep(1);
}
我测试了没有问题啊
把下面几行拿掉,直接echo 有效吗?感觉ob那部分有点问题。
如题,现在只知道一个文章的id,想通过Url::to的方法从backend生成一个frontend的链接。
并且遵循frontend的路由规则,如何实现?
正好有一篇文章是写这个的,可以看下。
http://yiilib.com/topic/736/Yii 2.0 使用UrlManage在后端生成前端URL
方法比较简单。
说一个直接的办法:先在 common/config/bootstrap.php
内追加两个 alises:
之后就可以在 backend 生成 frontend url 了:
至于你说的“遵循 frontend 的路由规则”,不用管它,因为生成的 URL 是前台的链接,routing 的时候自然去 frontend 内的 url rules 去匹配。
在backend中注册用户,但是backend中没有这个功能,frontend有这个功能,怎么才能在backend使用frontend的signup?谢谢
你的意思是后台使用前台的注册方法?
方法1:拷贝一份过来!需要启动db2!
方法2:直接用呗、就是返回路径的时候做个判断。不知道你是那种情况!
……和frontend一样,不久okay啦
从frontend copy过来就行了。
你这个要做代码移植手术
看代码阿。
真正的理解代码了,就不是代码放在哪的问题了
如题
先感谢各位大佬了!
在loginAfter()时在数据库中存一个最新的登录码,把这个登录码存到客户端的cookie(用session也可以)中,每次访问时比对一下,不一样,则自动logout(),不过要小心,这种自动logout()的有客户会感觉很不爽。
yii2中的登录前登录后的session值都是会变得。需要注意这一点。友情提醒
特意写了一个例子,你看看吧
http://www.codegong.com/document/71.html
今天在学习yii框架,按照文档上自动生成的crud,访问出现404,其他自己写的都OK。
查看源代码,发现自动生成的controller与自己写的controller差别只有引用,自动生成的引用yii\web\Controller,自己写的是yii\base\Controller。
其他没有发现什么不一样的。请各位大神帮忙看下,都搞一天了
红框内是自动生成的代码。
是在basic模板上写的。
浏览器输入的URL是tb-info/index?
Yii2 ajax请求的时候 headers里面自带了x-csrf-token ,而提交表单的时候headers里面却没有x-csrf-token,有大神能解答为什么吗??
ajax请求的时候它把csrftoken值放到了header里面,当然验证的时候它也会去header里找这个值得,这个你自己写ajax请求也可以这么做。post的时候Yii2默认会把这个值当一个hidden字段生成在表单里,验证的时候也去表单字段里找。
<?= Html::csrfMetaTags() ?> 这个加到layout文件里面
ajax也不用自己写了,自己添加到head头部了
学习了,赞
请问一下各位大神,在YII2中,yii2\web\Viwe,即在视图中的$this,我需要加写东西,就写了个BaseView类继承View类,那么我怎么使用BaseView而不是原来的View呢
方法1:在配置文件里面component里面配置
方法2:重写你的controller文件的getView()方法
方法3:或者在你需要使用的action里面调用