谁一开始就是大神?

PHP 第89页

PHP

attributes这个oldAttributes有什么区别吗[2.0]

Leofrog阅读(30)

一个是post过来的,一个数据库里面的吗?还是缓存里面,今天特意打印这个不一样

如果是一个新的ActiveRecord对象,oldAttributes就是null,如果是从数据库里读取记录生成的对象,oldAttributes会保存读取时的字段信息,如果修改过对象的属性值后,oldAttributes里的值和attributes里的值就会变得不同。在调用save时,会判断如果有不同,或者attributes里有字段不在oldAttributes里时,才会实际执行sql进行update操作。另外如果oldAttributes是null的话,调用save时,实际执行的就是insert操作

大家都把图片放哪个目录下的,还是说自己重新建一个文件夹的?[2.0]

Gracelemon阅读(24)

yii2的目录中有适合放图片的文件夹不?还是得自己建一个文件夹,然后再对该文件夹去config里配置一番哒。assets下可以放图片吗?放了图片可以再对图片进行修改吗?

上传图片建议放在web/assets目录下面,建议你新建一个upload文件夹。yii2的应用模板自动ignore掉了这个assets目录,所以上传的文件不会增加到版本库中(如果是用svn,你需要手动ignore掉这个)
不懂你的去config配置一番什么意思。。

yii2的gii到底怎么配置可以开始用啊?[2.0]

Leoseagull阅读(28)

官方文档上说的:Gii 是 Yii 中的一个模块。可以通过配置应用的 yii\base\Application::modules 属性开启它。通常来讲在 config/web.php 文件中会有以下配置代码:

$config = [ ... ];
if (YII_ENV_DEV) {
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

这段配置表明,如果当前是开发环境,应用会包含 gii 模块,模块类是 yii\gii\Module。
如果你检查应用的入口脚本 web/index.php,将看到这行代码将 YII_ENV_DEV 设为 true:
defined('YII_ENV') or define('YII_ENV', 'dev');
鉴于这行代码的定义,应用处于开发模式下,按照上面的配置会打开 Gii 模块。你可以直接通过 URL 访问 Gii:
http://hostname/index.php?r=gii

这些配置它本身就有,而且我现在就是用本机访问,也不用去添加ip地址的设置,可是为什么我什么都没有,是不是要在哪里配置的?

把你的域名换成127.0.0.1试试
你检查一下,你的gii模块代码是否存在,不存在的话,去下载一个呗,
默认的Gii只能通过127.0.0.1来访问,也就是本机访问,安全~
gii配置中能修改的属性好像就只有这些了:
我都照上面设置了还是不能访问gii模块,是什么原因啊?
‘allowedIPs’ => [‘*’],

GridView里面不要年龄,怎么根据年龄来筛选[2.0]

kenCherry阅读(28)

GridView 里面! 比如说表格里面只有编号,姓名,我要根据年龄来筛选,应该怎么做

很简单的一个需求。。。我知道怎么弄,不过现在在上班,o(╯□╰)o
从数据库查询,如果没有我发给你
数据库里有年龄不?
直接使用gii进行CRUD生成的查询页面不就可以吗?
在dataProvider加个默认排序

请问如何给user类增加属性?[2.0]

youthJames阅读(28)

大家好,请问如何实现如下对象?
yii::$app->user->someone
类似于。
Yii::$app->user->identity

比如我现在想增加一个 Yii::$app->user->profile,
思路是什么呢?

配置文件中的user部分进行属性配置?然后写代码继承某个类?和identity那样的接口类似?

还请大家指导。谢谢。

yii::$app->user->identity就是User模型的当前登录用户的实例。理论上你可以在User类中写getter方法即可,比如getProfile。在getProfile()中你可以选择用hasOne做表关联,也可以自己写sql查询然后返回array。

ActiveForm的checkbox如何默认是选中的?[2.0]

fationpony阅读(30)

求救

<?= $form->field($model, 'allow_comment')->checkbox([ 'label' => '允许评论']) ?>

先设置 $model->allow_comment = 1
<?= $form->field($model, 'allow_comment')->checkbox([ 'label' => '允许评论']) ?>
这样这默认选中了

文章的多标签功能如何实现?[2.0]

Neoseagull阅读(32)

类似我们这儿的“我要提问”里面的“多个标签请用半角逗号分隔”。。。
包括提交表格时的处理、数据库设计等等;请问这个是如何实现的?谢谢!

在yii1的blog demo中就有标签的使用,我是照搬过来的。
yii1.1有一个select2组件
也可以试试 bootstrap-tagsinput

在modelrules某欄位使用unique此然為驗證時無法成功[2.0]

youthlovely阅读(29)

前提
新增與修改 同一個表單,情境(scenario) 那我在送出後 新增可執行
但在修改的時候($model->validate())
假使欄位為 account_name 已有相同名稱就會無法驗證成功
但我的需求是 account_name 他初始的值可以修改並存入資料庫 但有重複到的值就無法修改
請問:
1.假使碰到這種狀況 新增與修改 需要用同一個情境嗎(小弟我是用同一個)
2.如果同一情境(scenario)下,有辦法可以解決嗎??
3.又或者自行附加 rules function
(附加過function rules 但同一情境下會先被 unique 先擋掉而不執行, 除非使用不同得情境)

第一次發文 請指教

也不一定要分不同情境。Yii model 有一个isNewRecord方法,用它来判断是否是新增记录,这样一来就可以做个条件判断,判断是新增还是修改。如果不是新增,再查询是否有重复的值,有重复的值就不保存。
$model->getErrors()打印下就知道错那了
rules 中有一个 when属性,这个属性能让你判断是否运行接下来的验证,相当于beforeValidateAttribute;

一个单独的html,用ajax去请求用yii写的接口,请求url和一些配置是怎么弄得,还有如何跨域[2.0]

CGdear阅读(27)

就是比如我本机有一个注册的html页面,单独的,与yii无关,不是yii里的view,然后我用yii写的接口放在买的服务器上,那么它们之间就有一个跨域的问题,之前没用框架写的接口,解决跨域是只要在php接口头上加一句header("Access-Control-Allow-Origin:*");就可以了,html里面像这样子请求:

$.ajax({
    type: "POST",
    url: "http://xxxx",
    dataType:"json",
    data: {psd:"298865"},
    success:function(json){  
         alert(json);}
    });
});

然后现在就是我的html里url写的是 http://localhost:8080/basic/web/index.php?r=user/register,我暂时还没把接口放到买的服务器上去,可是现在本地的它都报错:

403 Forbidden    You don't have permission to access /127.0.0.0:8080/basic/web/index.php
on this server.

所以想问下 是不是要配置什么的,还是说url不是那样写的。另外就是如果要跨域的话,又该怎么配置,貌似yii有个助手类use yii\filters\Cors;

use yii\helpers\ArrayHelper;
public function behaviors()
{
    return ArrayHelper::merge(
        [['class' => Cors::className(),],], parent::behaviors());
}

助手类要怎么配置。

请先确认你能正常的使用user/register,比如直接在网页访问。检查你YII中编写的注册方法是否正常使用
其次,在你自己写的HTML中用ajax方式访问上方同样的地址,看看是否是跨域的问题
如果是跨域的问题,舰长已推荐jsonp
楼主不懂markdown语法吗?我已经帮你重新编辑了,以后请注意!
考虑使用 jsonp 解决跨域的问题。

登录

找回密码

注册