谁一开始就是大神?

PHP 第109页

PHP

Yii中jQuery的引入问题[2.0]

JackLion阅读(28)

我想在一个页面中使用ajax,但是jquery.js是在布局文件main.php的末尾引用的,导致ajax失效,其他jquery代码也是失效的。想到解决的办法有二。

第一:将jquery代码写到布局里面,显然不可取,因为这样会导致文件会有多于的jquery代码。
第二:将jquery.js由布局文件的末尾移到开头,但是问题来了,在布局文件main.php中我并没有看到引入jquery.js的源码,不知道在哪里

引入的,所以就没法移动。 求解?

解决办法,在配置文件web.php中的components里:
傻孩子,其实也可以定制一下jquery的,框架自带的jquery没有压缩的,比较大,可以把它在源码处改写,换成自己的jquery,这样能节省几十kb哦

yii2.0如何用B控制器继承A,A控制器继承yii\web\Controller[2.0]

likelyStone阅读(28)

由于像在A控制器中的__construct()做一些简单的验证,
然后B控制器才是访问的控制器调用parent::__construct()去做通用的验证,
但是会报错,报错如下

PHP Fatal Error – yii\base\ErrorException
Call to a member function getUniqueId() on a non-object

yii 框架需要自己创建 Controller 的实例,你任何时候都不需要覆盖人家的 构造函数,如果你需要覆盖的话,也需要和它的 方法签名 一样,并且调用 parent::__construct99.999% 的情况下,你不需要这么做
你的问题是,在 controler 初始化的时候,做些验证,用 init() 方法就可以了

jQueryajax提交的时候返回POST404NotFound报错,求解决办法TT[1.1]

youthsea阅读(31)

$.ajax({
    url:"<?php echo $this -> createUrl('edit') ?>",
    type:'post',
    data:{aidArr:aidArr,hide:obj},
    dataType:'json',
    success:function (data){
        if(data.status == 1){
            window.location.href = "<?php echo $this -> createUrl('select') ?>";
        }else{
            alert('发布失败');
        }
    },
    error:function(boj,info){
        alert(info);
    },
});

输入图像描述
输入图像描述

这到底是什么问题造成的啊?昨天写完都没问题,功能都测试过了,但是今天就发现全部由ajax提交的都提示这错误了,一头雾水+无从下手,各位帮忙一下啊!!!

400 错误
有可能是你的action方法有定义的参数,但是这里没有传
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。

AssetBundle的basePath和sourcePath属性?[2.0]

Hazelsea阅读(28)

AssetBundle的basePath和sourcePath属性分别什么意思?

权威指南有点不太懂,求详细解释,Thank you ^_^

这么给你说吧,光指定sourcePath,然后把js或者css放到非web目录,YII就会自动在@webroot/asset目录生成一个随机文件夹,然后复制js和css文件进去;
如果指定了basePath,则会直接引用源文件,不会把文件复制到@webroot/asset目录。
比如
上面这段代码,在页面源码里引用的时候就是http://site/frontend/web/asset/1dcef3qr/js/script.js
而上面这段代码,在页面引用的时候就是http://site/common/js/script.js
呃,不知道代码怎么乱了,写的时候还好好的啊!

请问rules规则中的message如何引用当前的标签?[2.0]

lovecrab阅读(27)

比如定义好几个字段都不允许为空,错误提示为:字段名+错误提示,怎么写message语句;就是保证错误信息自动调用当前的attributeLabes的标签!
类似以下写法

public function rules()
{
    return [
        [['title', 'image', 'content'], 'required','message'=>"{{$attribute}}不能为空"],
        [['content'], 'string'],
        [['title', 'image'], 'string', 'max' => 225]
    ];
}

其中{attribute}是属性名称,{value}是用户输入的值

yii2中文化的问题

Aibynice阅读(27)

yii2的英文我看不太懂,试了好多次都没成功
我想弱弱的问下,到底应该怎么做。
有人说要加’language’ => ‘zh_CN’,那么加到哪个文件
如果不是,到底要怎么做,
谢谢各位高手相告

今天有时间研究了下,和大家共享(basic 模版):
修改config目录下的web.php文件,添加
这样可以把yii2定义的英文翻译成中文,但是页头需要自己修改 views/layouts/main.php文件自己修改。
那么,如果用gii自动生成数据库CURD操作的话,数据库的显示怎么改成汉字呢?
需要在model类中定义attributeLabels()方法:
但是这样定义是死的,不灵活,浪费了Yii::t()函数的强大功能,翻译成其他语言还得修改源程序。
以上述代码为例,修改代码为:
在config目录下的web.php文件,添加以下内容
return [ …
‘i18n’ => [
… ]
return [
];
config/maim.php
return [


]

response组件的format配置无效?[2.0]

HazelKeo阅读(31)

在进行RESTful时,默认输出格式是xml,我在web.php配置

'response' => ['format' => 'json',],
'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                ['class' => 'yii\rest\UrlRule', 'controller' => ['player', 'custom']],
            ],
        ],
//    yii\web\Application类

public function handleRequest($request)
    {
        if (empty($this->catchAll)) {
            list ($route, $params) = $request->resolve();
        } else {
            $route = $this->catchAll[0];
            $params = array_splice($this->catchAll, 1);
        }
        try {
            Yii::trace("Route requested: '$route'", __METHOD__);
            $this->requestedRoute = $route;
            $result = $this->runAction($route, $params);
            if ($result instanceof Response) {
                return $result;
            } else {
                $response = $this->getResponse();
                //在这个地方打印$response,它的format属性还是默认值xml,没有改变?
                if ($result !== null) {
                    $response->data = $result;
                }

                return $response;
            }
        } catch (InvalidRouteException $e) {
            throw new NotFoundHttpException($e->getMessage(), $e->getCode(), $e);
        }
    }

为什么response对象的format属性还是xml

yii\rest\Controller 有定义了一个 behavior
contentNegotiator 这个 filter 会根据 客户端的 Accept 请求头, 重设 Responseformat 属性,yii\filters\ContentNegotiator
简单说就是 如果 Accept: application/xml, 则 format 会被设置为 xml,如果是 Accept: application/json 会被设置为 json,你可以在 web.php 里面设置一个默认值,请求的时候会根据 Accept 请求头自动重设 format 属性,你的应用可以自适应 xml,或者 json,或者,把这个 filter 去掉,应用一直使用 json 格式
你的问题可能就是,应用发送了 Accept: application/xml 请求头,发送 json 请求头就 ok 了

Yii2.0高级模板入口文件[2.0]

Bellaqueen阅读(28)

yii高级模板web入口文件在哪里?

默认是没有入口文件的,需要你用 init 脚本初始化

Yii2是否包含Bootstrap3?[2.0]

ecybubble阅读(30)

听说 Yii 已经包含了 Bootstrap3 ,我想问下载下来的安装包就已经有 Bootstrap3 了吗?该怎么用啊??

这个教的不错,http://www.tuicool.com/articles/bAzMVje
自带集成了,你可以去看看手册,一般在调用微件的时候就能看到了
默认 composer.json 里是包含 bootstrap 的,根据需要增加或删除吧。

Yii加载PHP文件

fationhope阅读(33)

Yii 怎么加载一个 PHP 文件,若想要全局都可以使用这个文件里封装的函数,在哪个位置加载合适呢?

在 index.php 中加载就可以全局使用了。
这样做是很不妥的,yii的优势之一就是”惰性加载”,这样做就是完全摒弃了这种优势。并且破坏封装,没有逼格。
为啥你每次都自问自答?刷积分?

登录

找回密码

注册