谁一开始就是大神?

PHP 第52页

PHP

Yii2.0数据查询问题[2.0]

LiFox阅读(47)

$arrs=Brand::find()->orderBy('order')->select('name')->asArray()->all();

结果为:

Array ( 
	[0] => Array (
		[name] => php 
	) 
	[1] => Array (
		[name] => asp
	) 
	[2] => Array (
		[name] => jsp 
	) 
) 

那怎么取出这样的格式或转换出来

Array (
	[1] => php 
	[2] => asp 
	[3] => jsp
)

\yii\helpers\ArrayHelper::getColumn(Brand::find()->orderBy('order')->select('name')->asArray()->all(), 'name')

useapp\Models\Product;[2.0]

Aibyqueen阅读(48)

use app\Models\Product;
Product::find()->orderBy('order')->all();

请问,如果Product 是变量,有什么解决方案吗?

as一下。如use app\Models\Product as xxx

Yii::$app->end();不明白这是干啥用的(这是一段邮箱找回密码的代码)[2.0]

KimLion阅读(48)

class ManageController extends Controller
{
    public function actionMailchangepass()
    {
        $this->layout = false;
        $time = Yii::$app->request->get("timestamp");
        $adminuser = Yii::$app->request->get("adminuser");
        $token = Yii::$app->request->get("token");
        $model = new Admin;
        $myToken = $model->createToken($adminuser, $time);
        if ($token != $myToken) {
            $this->redirect(['public/login']);
            Yii::$app->end();
        }
        if (time() - $time > 300) {
            $this->redirect(['public/login']);
            Yii::$app->end();
        }
        if (Yii::$app->request->isPost) {
            $post = Yii::$app->request->post();
            if ($model->changePass($post)) {
                Yii::$app->session->setFlash('info', '密码修改成功');
            }
        }
        $model->adminuser = $adminuser;
        return $this->render("mailchangepass", ['model' => $model]);

    }
}

Yii::$app->end($status = 0, $response = null)表示终止程序;默认的表示正常终止,状态默认为0;其它状态均异常;
redirect不能终止程序 必须使用return 或者 Yii::$app->end(); 终止程序
这是注释。意思就是end()为确保程序的生命周期的完成。
看到源码是这么写,exit 终止执行,楼上的都是正确 也可以换成: die; return;
public function end($status=0,$exit=true)
上一句已经跳转到其他页面了,想知道如果没有这一句会发生什么
学习了,原来是相当于exit()。终止程序执行。

Yii2.0CSS,JS文件管理[2.0]

Jimfans阅读(49)

QQ图片20160818160926.png

QQ图片20160818160931.png

QQ截图20160818161026.png

QQ截图20160818161034.png

为什么$this->head() 只生成CSS文件了,JS文件没有呢?

骚年,如果你标签闭合了的话,js在下面的。
js默认加载在页面底部
$this->registerJsFile('xxx/xxx/xx/xx.js',['position'=>$this::POS_HEAD]);

入口文件进入不了[2.0]

HaHcrab阅读(48)

QQ图片20160826182355.png

求大神解救

web目录下的assets文件夹要改成777权限,就好了,另外还有web同级的runtimes文件夹也要是777

\yii\db\Query()会携带上次查询的order,limit,offset?[2.0]

Cindysuper阅读(51)

$database = new \yii\db\Query();
$sql1 = $database->select([])->from('aa')->Where(['is_del'=>0])->offset(10)->limit(10)->orderby('id desc')->createCommand()->getRawSql();
$sql2 = $database->select([])->Where(['isdel'=>0])->from('bb')->createCommand()->getRawSql();

输出sql:

sql1:"SELECT * FROM `aa` WHERE `is_del`=0 ORDER BY `id` DESC LIMIT 10 OFFSET 10"                   
sql2:"SELECT * FROM `bb` WHERE `isdel`=0 ORDER BY `id` DESC LIMIT 10 OFFSET 10"

输出的sql2为什么会带着sql1orderlimitoffset
除了重新new一个对象之外,有什么其他解决办法吗?
这很奇怪啊,总不能每次查询都新new一个吧。

1、new \yii\db\Query() 是一个对象,设置order,limit,offset是设置了对象的三个属性,下次再使用这个对象时,属性已经设置;
2、
3、如果是查询表相同,只是条件不同的话,可以使用clone;
每次要new一个新Query, Query会保存上次的查询状态

浏览器不显示web目录[2.0]

Newhappy阅读(47)

浏览器不显示web目录
557B36FD-5773-4E51-97B9-AAB462A6AD87.jpeg

ECA3F8C9-212A-4B8F-A2BE-468BBFFE8DA8.jpeg

权限我这里也是777

你是不是配置了伪静态或者url美化。

yii2的JS事件[2.0]

Jimfans阅读(46)

请问,yii2对JS事件是否有相应的书写方法,还是一定要独立写JS代码?

比如,我点击某个DIV,另一个DIV 就显示

YII只是个PHP的框架。并没有对JS进行封装。也完全没有必要封装JS,毕竟有Jquery的存在。
所以你在引入Jquery之后完全可以依照JQ的写法去书写JS
当然,你可以控制JS存在于源代码的位置,比如head,body等位置。甚至,你可以把它控制在YII JQ的$(function(){})中。
PS:你可以在浏览器右键查看源代码以查看其JS最终位置。
代码看起来就像是酱紫的, 其中\yii\web\View::POS_READY代表着本块JS代码的位置存在于$(function(){})中。
你可以在权威指南的 显示数据->操作客户端脚本 以及 应用结构->视图->使用数据块 中得到详细的描述。
没有做限制,可以自己随意写。
只有特定组件,如GridView,等内置的widgets,才有对应的js,但是也是封装成插件。
没有限制,
Yii2集成了bootstrap,像你说的这个显隐功能,不用写JS代码就能实现,Yii2不仅封装了自己的组件,它引用的bootstrap的也带了很多前台js功能

DatePicker怎么显示分秒呢?[2.0]

Fionaqueen阅读(48)

<?= $form->field($model, 'name')->widget(DatePicker::classname(), [
    'language' => '',
    'dateFormat' => 'yyyy-MM-dd',
    'options' => ['class' => 'form-control'],
]) ?>

DatePicker 怎么显示时分秒呢?

换dateTimePicker

登录

找回密码

注册