月度归档:2018年11月

Linux修改文件属性与权限

  • chgrp修改所属组:
    chgrp [-R] dirname/filename

  • chown修改所有者:
    chown [-R] 账号名称 文件或目录
    chown [-R] 账号名称:用户组名称 文件或目录

  • chmod修改权限:
    chmod [-R] xyz 文件或目录
    chmod ugoa +-= rwx 文件或目录

ownergroupothers
rwxrwxrwx
4+2+14+2+14+2+1

例:chmod u=rwx,o-r aaa.txt

给aa.txt文件的所有者赋予读写执行的权限,给其它人移除可读的权限

  • 目录与文件的权限意义: 文件:读,可读取文件内容;写,可编辑(不可删除);执行,文件具有被系统执行的权限 目录:读,可列出该目录文件名数据;写,新建、删除、更名、移动该目录内的文件、目录位置;执行,代表用户能否进入该目录
1+

使用post提交请求数据被截断

使用$.post AJAX提交了json格式的数据,后台接受数据时一直得不到正确的数据结构,数据被无情的截断了,也没有特别的报错提示。
解决方法:修改php.ini的max_input_vars,默认为1000行,修改后重载一下php.ini

0

linux重载php.ini

nginx服务器修改php.ini后需要重启php-fpm才能生效

先查看php-fpm的master进程号 ---master
ps aux|grep php-fpm
root 42891 0.0 0.1 182796 1220 ? Ss 4月18 0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

重启php-fpm:
kill -USR2  主进程ID
0

Yii2 搜索模型的使用

在后台项目中几乎一直要用到对于列表页的数据进行筛选排序。如果筛选条件比较多的情况下,还是建议写一个搜索模型。到时候改的时候也比较方便。

<?php
/**
 * Created by PhpStorm.
 * User: damon
 * Date: 2018/10/30
 * Time: 6:16 PM
 */

namespace backend\models;


use common\helpers\Tools;
use common\models\UserComplaints;
use yii\data\ActiveDataProvider;

class UserComplaintsSearch extends UserComplaints
{
    public $timeKey;
    public $startTime;
    public $endTime;

    public function rules()
    {
        return [
            [['timeKey','startTime','endTime'],'safe']
        ];
    }


    public function search($params){
        $query = UserComplaints::find();
        $dataProvider = new ActiveDataProvider([
            'query'=>$query,
            'pagination'=>[
                'pageSize'=>50,
            ],
            'sort'=>[
                'defaultOrder'=>[
                    'id'=>SORT_DESC
                ],
            ]
        ]);
        if(!$this->load($params,'')&&$this->validate()){
            return $dataProvider;
        }

        switch ($this->timeKey){
            case 'today':
                $query->andWhere(['between','created_time',date('Y-m-d'),date('Y-m-d',strtotime('+1 days'))]);
                break;
            case 'week':
                $startTime = Tools::getWeekStart();
                $query->andWhere(['between','created_time',$startTime,date('Y-m-d',strtotime('+1 days'))]);
                break;
            case 'month':
                $startTime = Tools::getMonthStart();
                $query->andWhere(['between','created_time',$startTime,date('Y-m-d',strtotime('+1 days'))]);
                break;
            default:
                break;
        }

        if(!empty($this->startTime)&&!empty($this->endTime)){
            $query->andWhere(['between','created_time',$this->startTime,date('Y-m-d',strtotime("+1 days",strtotime($this->endTime)))]);
        }
        return $dataProvider;
    }
}

在控制器中只需要将传过来的参数load进去就可以了

$searchModel = new UserComplaintsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->get());
return $this->render('complaints',['models'=>$dataProvider->getModels()]);
0