larver框架

composer={

#安装建表工具

composer create-project --prefer-dist laravel/lumen blog

 

#composer

在项目的根目录,写composer.json文件

 

{  "require":{    "psr/log":"1.0.0"  } }

{  "require":{    "厂商/类库":"版本"  } }

#执行composer install

#会自动去加载,并产生一个verdor目录

如何加载这么多类

# Composer 生成了一个 vendor/autoload.php 文件. 你可以简单的引入这个文件,你会得到完善的自动加载支持.

如果你想使用类,在php先引入这个 vendor/autoload.php 文件.

require(__DIR__ . '/vendor/autoload.php');

use Psr\Log\NullLogger; #autoload会自动引入Psr\Log\NullLogger类

 $foo=new NullLogger();#就可以直接用了

}

 

laraver={

1. 用composer create-project命令自动下载laravel,同时自动安装依赖库

#composer create-project laravel/laravel=5.1.1

1.4 配置虚拟主机

在nginx中,配置server段,指向/public目录.

依我们要做的p2p金融网站为例:

#root html/jinrong/public;因为入口在public文件下

1.1路由器

Route::get('/yy', 'XxController@reg');

#上面的代码:当用GET方式访问 xx.com/yy 这个地址时,用XxController中的reg()方法去响应.刷新和直接进网站都是get方式

Route::post('/zz', 'XxController@pay');

#前面一定要加index.php/控制器/方法

#上面的代码:当用POST方式访问 xx.com/zz 这个地址时,用XxController中的pay()方法去响应.比如提交表单,指定post

Route::get('/', function () {

  return 'hello';#当GET访问网站根目录"/"时,用第2个参数的匿名函数去响应.

})

 

#注意: 如果同一个路由被写了2次,则以最后一次路由为准!

 

2.2 路由器与参数传递

Route::get('user/{id}', function ($id) {

  return 'User '.$id; #下例是指 xx.com/user/123这样的URL, user后面的值将会捕捉到,

});

 

#传递可选参数

Route::get('user/{name?}', function ($name = null) {

  return $name; #把$name显示到页面

});

#参数限制

Route::get('user/{id}', function ($id) {

})->where('id', '[0-9]+');#后面是正则表达式

 

控制器

#所有的控制器放在'/app/Http/Controllers'目录下,这是默认放控制器的目录

 

#类名叫XxController

#命名空间是 App\Http\Controllers

#继承自App\Http\Controllers\Controller

文件名: Xx控制器Controller.php

例: UserController.php

}

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class XxxController extends Controller {

  public function add() {

 

  }

 

#return view('login',['lists'=>'888111']);传入数据到login模版中

视图模板放在/resources/view下.

xx.php ,或xx.blade.php

 

#如果以.php结尾,模板中直接写PHP语法即可,例

#如果以.blade.php结尾,则是用laravel特有的模板语法.例{{ $title }},也可以用

注意: 如果有 xx.php , xx.blade.php两个同名模板, 优先用blade模板.

 

字段类型网站

http://laravelacademy.org/post/130.html

.env文件增加数据库信息

很实用的建表工具

#数据库迁移

php artisan migrate#执行所有迁移文件

php artisan migrate:rollback#指全部回滚,只会回滚最后修改一次的

php artisan make:migration create_addlist_table#命令:创建一张名为users的表

 

#格式

#up

Schema::create('alevelrate', function (Blueprint $table) {

  $table->BigInteger('ID',true,false)->unique('alevelrate_PK');#索引,添加唯一索引

  $table->bigInteger('fdlMainID')->comment('主表ID')->default(0);

  $table->date('fddDateB')->comment('开始日期')->index('acouponsrules_idx')->nullable();#添加普通索引

  $table->date('fddDateE')->comment('结束日期')->index('acouponsrules_idx_B')->nullable();#nullable()允许该列的值为NULL

  $table->boolean('fdbStop')->comment('是否停用')->default(false);

    $table->timestamps();#添加时间

 

 });

#down

 Schema::drop('alevelrate');

 

#常用类型

  $table->boolean('confirmed');#等同于数据库中的BOOLEAN类型

  $table->bigIncrements('id');#自增ID,类型为bigint

  $table->integer('votes'); #等同于数据库中的 INTEGER 类型

  $table->bigInteger('votes');#等同于数据库中的BIGINT类型

  $table->string('name', 100);#等同于数据库中的 VARCHAR,带一个长度

  $table->char('name', 4);#等同于数据库中的CHAR类型

  $table->float('amount');#等同于数据库中的 FLOAT 类型

  $table->double('column', 15, 8);#等同于数据库中的DOUBLE类型,带精度, 总共15位数字,小数点后8位.

  $table->increments('id');#数据库主键自增ID

  $table->longText('description');#等同于数据库中的 LONGTEXT 类型

  $table->smallInteger('votes');#等同于数据库中的 SMALLINT 类型

  $table->string('email');  #等同于数据库中的 VARCHAR 列  .

 

  $table->date('created_at');#等同于数据库中的DATE类型

  $table->timestamps(); #添加 created_at 和 updated_at列.

  $table->integer('votes')->unsigned();    #无符号类型

#增加字段

 php artisan make:migration add_字段名_to_表名_table --table=表名 #字段名可以暂时写一个,其实可以写增加多个

#里面修改的代码

 $table->string('agee')->nullable()->after('age');#指定在那个字段后面

 $table->string('ageed')->nullable()->after('email');#指定在那个字段后面

 $table->bigIncrements('id');#自增ID,类型为bigint

 $table->bigInteger('votes');#等同于数据库中的BIGINT类型


 

#数据库操作

#如果不用Model,我们也可以用laravel的DB类操作数据库.

增:

#插入单行 (注意看数组的键):返回值为true 和 false

  DB::table('users')->insert(['email'=>'[email protected]']);

#插入多行:

  DB::table('users')->insert([['email'=>'[email protected]'],['email'=>'[email protected]'],]);

#插入后 返回主键值 获取主键值,用insertGetId()方法

  DB::table('users')->insertGetId(['email'=>'[email protected]']);

改:

  DB::table('users')->where('id', 1)->update(['age' => 19]);#修改

  DB::table('users')->where('id',1)->increment('age');#自增1

  DB::table('users')->where('id',2)->increment('age', 3);

  DB::table('users')->where('id',3)->decrement('age');#自减1

  DB::table('users')->where('id',4)->decrement('age', 3);

删:

  DB::table('users')->where('id' , '>' , '6')->delete();

查:

  DB::table('users')->get();#查全部

  DB::table('users')->where('id' , > 6)->get();#条件查

  DB::table('users')->select('id','email')->where('id' , > 6)->get();#根据字段查

  DB::table('users')->where('id',6)->first()#重复取出单行

 

#在blade模板中,不是assign ,而是以数组参数集中传递.

  $data = [

  'title'=>'天气预报',

  'content'=>'今天天气真不错',

  'score'=>mt_rand(40,90),

  'users'=>['zhangsan','lisi','wangwu']

  ];

  return view('test',$data);

  }

 

#自动生成Model

  php artisan make:model Msg#会自动创建Msg模型,里面的继承也会写好

 

#复杂查询

  Msg::where('id','>',2)->orderBy('id','desc')->skip(2)->take(1)->get();#select .. where id>2 order by id desc limit 2,1;


 

#csrf_token(),生成防跨域提交的随机串

  如果是From表单提交,那么会提示csrf_token()验证,这是laraver框架所限制的

 

  csrf_token()

  生成防跨域提交的随机串



 

你可能感兴趣的:(PHP)