谁一开始就是大神?

PHP 第104页

PHP

yii2如何引入资源文件[2.0]

Jadecrab阅读(92)

<?php
use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;

/* @var $this \yii\web\View */
/* @var $content string */

AppAsset::register($this);
?>
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>

他是如何引入资源文件的?
用的yii2basic的layout/main.php

一切尽在Controller的render方法中,只有在控制器中render才会加载layout,在View的render方法中是不会自动加载layout
layout怎么引用进来我们已经知道了,那么在视图文件中怎么把资源注入到layout的头部或者底部呢?
每个Asset中都会用到以上这些资源注入方法,而在Layout中会有View::head()、View::beginBody()、View::endBody() 这些标记,在页面的输出<![CDATA[YII-BLOCK-HEAD]]>就这一串这样子的字符。在View::endPage()的时候就会把注入的资源全部替换到页面上的每一个标记中。至于要指定注入到某一个标记中,需要指定上面的注入资源函数的第二个参数。
AppAsset::register($this);
可以追踪下源码。大体是通过layout里的$this->head() $this->endBody() 这些方法添加进去的
刚刚研究出来,是如何引入资源文件,不过已经有高手解答了,哈哈

类名用变量代替应该怎么写呢[2.0]

Beehope阅读(89)

use app\controllers\SiteController;

$s = 'SiteController';
$model = new $s();
$s->index();

想把类名用变量代替 应该怎么写呢?

上面写法提醒没有这个类
Class 'SiteController' not found

不用use,尝试以下写法:
你不应该是使用$model->index();来调用么

yii2.0.3如何部署到网络服务器[2.0]

coolEagle阅读(98)

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,如果你是虚拟主机,还需要参考文档的共享主机那一章节。
同问这个问题。。。到底需要上传哪些到哪里?
这样就解决了?

可有人会Yii2-admin这个东西啊[2.0]

Swiftsuper阅读(100)

安好了,不会用。比如那个添加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弹出错误消息,如何实现[2.0]

Ellieyak阅读(92)

Yii2 客户端验证有时候需要 alert 弹出错误消息,如何实现?
yii默认是把错误消息显示在表单后面的。 有时候前端需要直接 alert错误消息,这个时候怎么实现呢?

验证消息的提示是通过yii.validation.js最终实现的,这个js文件在yii/web/assets/下第一个文件夹里,你找到这段语句:
然后在
之后添加一句:
然后保存,这样就可以使得验证错误信息在input触发blur的时候,不仅显示在页面,也会弹出对话框了。
By ArthurSS 2015/4/3
可以使用CSS定位消息的显示位置吧。

验证规则后值被莫名其妙清空了[1.1]

Fionahope阅读(89)

我描述大概的情景:我使用yii中内置的CUploadedFile上传文件后,重新上传图片时,由于上传文件为空,所以我把原来的字段值重新赋回去,表示不修改原来的图片,但是在调用save()方法保存修改时,之前被赋值的图片字段居然被清空了,经过我排查后,最后锁定问题来自于调用save()方法时默认触发validate()方法进行规则验证()后,之前被赋值的图片字段居然变成了空值(注意赋值操作是在save操作之前),莫名其妙被清空掉了,不知道大家有没有遇到过这样的问题?

如果你不想改掉这个字段的话,可以把它unset掉
那应该是你没有判断是否为空,你將空的数据也传入了数据库,那数据库就帮你保存啦

用User::model()创建模型返回为null[1.1]

Hazelhope阅读(92)

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这个静态方法呗

Yii2获取用户输入的数据[2.0]

likelydear阅读(96)

if ($model->load(Yii::$app->request->post()) && $model->save()) {
  // 获取用户输入的产品名
  Yii::$app->request->post("pro_name");//没获取到,请问各位是如何解决的?
}

这很简单啊,你已经做好的数据传递(load)和保存(save),在函数里输出试试:
如果没有赋值显示null,那就是你的model或者view的问题了

数据库添加字段,调用出现义的情况[1.1]

Lvynice阅读(90)

我在数据库总添加了一个新的字段
在对应的model中 rules添加了
array(‘新字段’,’safe’,’on’=>’search’)
array(‘新字段’, ‘length’, ‘max’=>30),
在colleer类中调用,就报了User.新字段未定义

看下 model 文件上面被注释掉的字段中是否有增加你新添加的字段
应该还是从model文件找问题,具体就不清楚啦。。
没有大神来回答问题吗,我也是遇见这个问题了,就是添加了新字段后,调用的时候提示未定义,好像说是数据库字段缓存的原因,这个怎么解决呢,求大神解答

登录

找回密码

注册