laravel 5.0

1.应用场景

使用PHP5.4[因为php5.4只能最高支持laravel 5.0]快速开发/维护一个web系统

2.学习/操作

1.获取参数 get方式 【查询字符串方式:Query String】

http://test.oa.com/api/u2d/texture/export?name=test&sex=男

Route::get('export', 'U2dTextureController@test');   //路由

//导出excel get请求测试   //控制器方法
    public function test(Request $request){
        $all = $request->all();
        dd($all);
        $name = $request->query('name', 'Helen');
        $sex= $request->query('sex', 'male');
        dd($name,$sex);
    }

// 输出:

array:3 [
"_u" => "u3d/texture/export"
"name" => "test"
"sex" => "男"
]

 

2.查看模型生成的sql

dd($model->toSql()); //有时不能生效,是因为此时$model已经不是模型类,或者说发生了变化/具体分析源代码。

 

3.查看手册 //通过打印源代码 

$total = $model->getQuery(); //dd($totle); //很详细

4.查看laravel 的报错机制【‘浅尝辄止’】

//关键词: exception 与 trace  前者告诉你在问题最终出现的运行文件,后者告诉在该文件中执行的路径【即调用栈】

 

5.在laravel5.1框架中接收contentType为application/json的数据时怎么接收官方文档不是很清楚 ,stackoverflow上找到的解决思路.

class TestController extends BaseController
{
    function test()
    {
        $data = Input::json();
        return $data->get('name', 'daniel');  //待验证

    }
}
6.使用where查询

public function getSearchQueryByField($path = '', $fields = []){
    $query = self::query();
    $query->selectRaw('*, sourcewidth*sourceheight as sourceOrder,platformwidth*platformheight as platformOrder');
    $query->where(['testid' => $this->testid]);
    if(!empty($path)){
        $query->where('filepath','like', "%{$path}%");
    }
    foreach ($fields as $v){
        if(in_array($v['id'], ['filepath'])){
            if(is_array($v['val'])){
                $query->where($v['id'],'in', $v['val']);
            }else{
                $query->where($v['id'],'regexp', $v['val']);
            }
        }else if(in_array($v['id'], ['submitter'])){
            $query->where($v['id'],'like', '%'.$v['val'].'%');
        }else if(strpos($v['id'],"min_") !== false){
            $query->where(str_replace('min_', '', $v['id']),'>=', $v['val']);
        }else if(strpos($v['id'],"max_") !== false){
            $query->where(str_replace('max_', '', $v['id']),'<=', $v['val']);
        }else if(in_array($v['id'], ['setformat'])){
            if(!is_array($v['val']) || count($v['val']) == 0) continue;
            $query->whereIn($v['id'], $v['val']);
        }else{
            $query->where($v['id'],'=', $v['val']);
        }
    }
    return $query;
}

 

7.post请求获取参数

 

//获取请求参数 这里封装为助手函数的形式
function getParams($req){
$data = file_get_contents('php://input');
$type = $_SERVER['CONTENT_TYPE'];
if(stripos($type,'application/json') !== false){ //使用application/json请求方式
$data = json_decode($data, true);
}else{ //使用x-www-form-urlencoded 方式,其中部分使用json字符串,关键是根据$data的接收类型而定
$data = $req->all();
foreach($data as &$v){
$ret = json_decode($v, true);
if($ret) $v = $ret;
if($v === '[]') $v = [];
if($v === 'false') $v = false;
}
}
return $data;
}

 

6.laravel5.0框架查看执行过的sql语句

https://blog.csdn.net/william_n/article/details/97243493

 

7.Laravel5.0中使用LaravelExcel实现文件导出

https://blog.csdn.net/william_n/article/details/95647433

 

后续补充

...

3.问题

TBD

4.汇总

lavarel学院中文手册

https://blog.csdn.net/william_n/article/details/97243493

https://blog.csdn.net/william_n/article/details/95647433

后续补充

... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值