谁一开始就是大神?

PHP 第90页

PHP

Yii2返回某个列怎么写?[2.0]

momolovely阅读(29)

返回某个列怎么写?

如:select name,password from users;

TP:$User->field('name,password')->where($where)->select();

YII2:?

网站的文档一塌糊涂,原谅我翻了1小时,和百度30分钟都没找到。

只找到了findBySql写法。。。

$teacher->findBySql('select id,name from teacher where id = :id',[':id'=>1])->asArray()->all();

我还不如写原生SQL。。。。(╯□╰)

$teacher::find()->select(['f1','f2'])
建议用PhpStorm吧,有代码提示,能跟踪,很容易上手的~

在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 解决跨域的问题。

在AppAssets访问Yii::$app->params的问题[2.0]

Jadelove阅读(25)

Yii2.0 在params里配置里一个自定义变量envDir, 在view里可以通过
Yii::$app->params['envDir']访问,选择需要在AppAssets里访问这个变量,请问如何做到?

PS: 在AppAssets里我直接访问Yii会报错。

显然是不能这样做,PHP的问题。你应该重写下 init()方法,比如
报什么错?
use Yii; or use :\Yii::$app………..

有没有办法给模块一个访问映射的?[2.0]

dmfans阅读(30)

我现在在开发的时候,管理后台习惯了使用Admin模块,而这样不是太安全,有没有办法设置成另一个别名访问的,url里就可以通过别名访问,而不能使用 admin 访问,记得thinkphp里有这个功能的,不知道Yii2下下如何实现?

在urlManager添加规则就可以了
模块名/<controller:\w+>/<action:\w+>' => 真实模块名称/<controller>/<action>
模块名可以任意修改成你需要的.配合Url,Html生成链接即可.

怎么让自己写的widget放在github中让别人可以使用composer下到项目中[2.0]

Kindpony阅读(32)

怎么让自己写的widget 放在github 中让别人可以使用composer下到项目中

谢谢

注:让自己写的项目放在github中我会,但是以插件的形式,可以down到别人项目中,没有思路~望前辈们指点迷津

主要在composer.json里把autoload设置好,并且对应上你的命名空间。你可以随意找个插件模仿一下。我是模仿的kartik写的datepicker插件。这是我写的.
然后去packagist 发布你的插件,就一个钩子设置稍微麻烦点,用来同步更新你的更新,都有说明,自己翻译下照着做就可以了。
上传到github和packegist上,如下:
https://github.com/
https://packagist.org/

YII2.0全局过滤器如何配置?[2.0]

Leoqueen阅读(28)

请问, YII2.0全局过滤器能配置吗,如何配置?

全局Application配置数组里挂载behavior,下面这样:
能配置
如何配置?根据你自己的需求去配置。
源文件里有比较详细的配置方法。
权威指南 关键概念 行为
章节中有几种附加行为的方式的说明。
其中 “通过配置去附加行为” 讲了格式:“as 自定义的行为名称”

请问如何在GridView中每条数据前面添加input框呢?[2.0]

acgqueen阅读(27)

代码如下:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    //'filterModel' => $searchModel,
    'columns' => [
       //单选按钮组
       // ['class'=>'yii\grid\CheckboxColumn','headerOptions'=>['width'=>'5%'],],
        ['attribute' => 'linkage_listorder','headerOptions'=>['width'=>'5%']],
        ['attribute'=>'linkage_id','headerOptions'=>['width'=>'5%'],],
        ['attribute'=>'linkage_name','headerOptions'=>['width'=>'25%'],],
        ['attribute'=>'linkage_description','headerOptions'=>['width'=>'30%'],],
    ],
]);?>


<?php ActiveForm::end()?>

额,自己用过,只是生成图片和链接,骚年看看这样子可以么?
format 改成 raw或者html
加个value,里面嵌入html代码

yii2修改css不生效[2.0]

Fionayak阅读(32)

服务器是unbuntu server 12.04 挂载共享文件夹

yii2 整合了smarty, 修改web下的css文件,修改一两行无效,多行有效,js修改有效

请教

修改后清除本地缓存试下。

登录

找回密码

注册