laravel教程

window本地保存Local Storage

保存:window.localstarage.setItem(‘名’,‘值’);

查询:window.localstarage.getItem(‘名’);

删除:window.localstarage.clear(‘名’);

laravel

安装laravel:composer create-project --prefer-dist laravel/laravel blog

查看路由:php artisaan

删除文件后:composer dump

创建控制器:php artisan make:controller Admin\PhotoController

创建中间件:php artisan make:middleware 中间件名

创建验证器:php artisan make:request 验证器名.

创建迁移文件:php artisan make:migration create_users_table --create=users

执行迁移文件:php artisan migrate

回滚迁移文件:php artisan migrate:rollback

php artisan migrate:rollback --step=5

清除表后在执行迁移文件:php artisan migrate:refresh

创建数据填充文件:php artisan make:seeder UserSeeder

# 执行指定种子的文件

php artisan db:seed --class=需要执行的种子文件名

# 执行全部的种子文件

php artisan db:seed 必须在DatabaseSeeder文件中定义好 call

# 删除表并执行迁移和种子文件

php artisan migrate:refresh --seed 必须在DatabaseSeeder文件中定义好 call

遍历@foreach

模板使用

模板:mb.blado.php

引入:@include(‘mb’)

继承模板:ss.blado.php

内容:里面那一点动态加上yield(‘修改名称’)

继承:@extends(‘ss.blado.php’)

改区域调用@section(‘修改名称’)

@endsection
表单验证
第一种

@csrf input类型

第二种

@{{csrf_field()}} input类型

第三种

@endsection 单字符串

创建验证控制器

创建验证器:php artisan make:request 验证器名

‘user’=>‘required’ 不能为空

‘user.required’=>‘不能为空’

方法rules() messages()

DB原生sql

// 添加操作
$ret = DB::insert('insert into test_member (name,age) values (:name,:age,:email)', [':name'=>'张三',':age'=>20,]);
// 修改操作
$ret = DB::update('update test_member set age=:age where id=:id', [':age' => 12, ':id' => 1]);
// 查询 select 
\# 查询单条
$ret = DB::selectOne("select * from web64_user where id=:id",[':id'=>$id]);
\# 查询多条
$ret = DB::select("select * from web64_user");
// 删除操作
$ret = DB::delete("delete from test_member where id=:id",[':id'=>1]);

DB构建器操作数据库

查询

# 查询多条 get all

# all不可以接where条件

// 查询所有无条件

$data = DB::table(‘user’)->get();

// 查询所有,并指定字段

$data = DB::table(‘user’)->get([‘name’,‘age’]);

// 获取ID大于5的数据

$ret = DB::table(‘member’)->where(‘id’,‘>=’,5)->get();

# 查询单条记录

$ret = DB::table(‘member’)->where(‘id’, 5)->first();

# 获取某个具体的值

$ret = DB::table(‘member’)->where(‘id’,5)->value(‘name’);

# 获取一列数据

$ret = DB::table(‘member’)->pluck(‘name’);

# 以ID为下标 name为值

$ret = DB::table(‘member’)->pluck(‘name’, ‘id’);

# 排序操作,倒序

$ret = DB::table(‘member’)->orderBy(‘id’,‘desc’)->get();

# 查询总记录数

echo DB::table(‘member’)->count();

# 分页获取数据

$ret = DB::table(‘member’)->orderBy(‘id’,‘desc’)->offset(0)->limit(2)->get();

添加

insert() 可以同时添加一条或多条,返回值是布尔类型。

insertGetId() 只能添加一条数据,返回自增的id。

// 添加数据

$ret = DB::table(‘member’)->insert([

​ ‘name’ => ‘张三丰’,

​ ‘age’ => 50,

​ ‘email’ => ‘ee@ee.com’

]);

// 添加数据并得到插入时的ID值

$id = DB::table(‘member’)->insertGetId([

​ ‘name’ => ‘小华’,

​ ‘age’ => 60,

​ ‘email’ => ‘ff@ff.com’

]);

// 添加多条记录

$ret = DB::table(‘member’)->insert([

​ [‘name’=>‘AAAA’,‘age’=>20,‘email’=>‘111@111.com’],

​ [‘name’=>‘BBBB’,‘age’=>30,‘email’=>‘222@222.com’],

]);

修改

$ret = DB::table(‘member’)->where(‘id’, 2)->update([

​ ‘name’ => ‘修改一下’,

​ ‘age’ => 50

]);

删除

// 删除数据

$ret = DB::table(‘member’)->where(‘id’,2)->delete();

数据迁移和数据填充

数据迁移

创建迁移文件:php artisan make:migration create_users_table --create=users

php artisan *make:migration* create_test_table --create=test

create_test_table 生成的文件后缀名称

–create=test 生成表名为test的数据表

执行迁移文件:php artisan migrate

回滚迁移文件:php artisan migrate:rollback

php artisan migrate:rollback --step=5

清除表后在执行迁移文件:php artisan migrate:refresh

数据库表新建字段
$table->bigIncrements('id');递增 ID(主键),相当于「UNSIGNED BIG INTEGER」型态。
$table->bigInteger('votes');相当于 BIGINT 型态。
$table->binary('data');相当于 BLOB 型态。
$table->boolean('confirmed');相当于 BOOLEAN 型态。
$table->char('name', 4);相当于 CHAR 型态,并带有长度。
$table->date('created_at');相当于 DATE 型态
$table->dateTime('created_at');相当于 DATETIME 型态。
$table->dateTimeTz('created_at');DATETIME (带时区) 形态
$table->decimal('amount', 5, 2);相当于 DECIMAL 型态,并带有精度与基数。
$table->double('column', 15, 8);相当于 DOUBLE 型态,总共有 15 位数,在小数点后面有 8 位数。
$table->enum('choices', ['foo', 'bar']);相当于 ENUM 型态。
$table->float('amount', 8, 2);相当于 FLOAT 型态,总共有 8 位数,在小数点后面有 2 位数。
$table->increments('id');递增的 ID (主键),使用相当于「UNSIGNED INTEGER」的型态。
$table->integer('votes');相当于 INTEGER 型态。
$table->ipAddress('visitor');相当于 IP 地址形态。
$table->json('options');相当于 JSON 型态。
$table->jsonb('options');相当于 JSONB 型态。
$table->longText('description');相当于 LONGTEXT 型态。
$table->macAddress('device');相当于 MAC 地址形态。
$table->mediumIncrements('id');递增 ID (主键) ,相当于「UNSIGNED MEDIUM INTEGER」型态。
$table->mediumInteger('numbers');相当于 MEDIUMINT 型态。
$table->mediumText('description');相当于 MEDIUMTEXT 型态。
$table->morphs('taggable');加入整数 taggable_id 与字符串 taggable_type
$table->nullableMorphs('taggable');morphs() 字段相同,但允许为NULL。
$table->nullableTimestamps();timestamps() 相同,但允许为 NULL。
$table->rememberToken();加入 remember_token 并使用 VARCHAR(100) NULL。
$table->smallIncrements('id');递增 ID (主键) ,相当于「UNSIGNED SMALL INTEGER」型态。
$table->smallInteger('votes');相当于 SMALLINT 型态。
$table->softDeletes();加入 deleted_at 字段用于软删除操作。
$table->string('email');相当于 VARCHAR 型态。
$table->string('name', 100);相当于 VARCHAR 型态,并带有长度。
$table->text('description');相当于 TEXT 型态。
$table->time('sunrise');相当于 TIME 型态。
$table->timeTz('sunrise');相当于 TIME (带时区) 形态。
$table->tinyInteger('numbers');相当于 TINYINT 型态。
$table->timestamp('added_on');相当于 TIMESTAMP 型态。
$table->timestampTz('added_on');相当于 TIMESTAMP (带时区) 形态。
$table->timestamps();加入 created_atupdated_at 字段。
$table->timestampsTz();加入 created_at and updated_at (带时区) 字段,并允许为NULL。
$table->unsignedBigInteger('votes');相当于 Unsigned BIGINT 型态。
$table->unsignedInteger('votes');相当于 Unsigned INT 型态。
$table->unsignedMediumInteger('votes');相当于 Unsigned MEDIUMINT 型态。
$table->unsignedSmallInteger('votes');相当于 Unsigned SMALLINT 型态。
$table->unsignedTinyInteger('votes');相当于 Unsigned TINYINT 型态。
$table->uuid('id');相当于 UUID 型态。
ModifierDescription
->after('column')将此字段放置在其它字段「之后」(仅限 MySQL)
->comment('my comment')增加注释
->default($value)为此字段指定「默认」值
->first()将此字段放置在数据表的「首位」(仅限 MySQL)
->nullable()此字段允许写入 NULL 值
->storedAs($expression)创建一个存储的生成字段 (仅限 MySQL)
->unsigned()设置 integer 字段为 UNSIGNED
->virtualAs($expression)创建一个虚拟的生成字段 (仅限 MySQL)
数据填充

创建数据填充文件:php artisan make:seeder UserSeeder

# 执行指定种子的文件

php artisan db:seed --class=需要执行的种子文件名

# 执行全部的种子文件

php artisan db:seed 必须在DatabaseSeeder文件中定义好 call

# 删除表并执行迁移和种子文件

php artisan migrate:refresh --seed 必须在DatabaseSeeder文件中定义好 call

数据库模型

创建模型:php artisan make:model 模型文件名

php artisan make:model Models/Member

# 创建模板并生成迁移文件

php artisan make:model Models/Article –m

// 指定表名

protected $table = ‘member’;

// 指定主键的名称

protected $primaryKey = ‘mid’;

// 时间戳 这里一定要注意它是用的public

public $timestamps = false;

# 白名单

protected $fillable = [‘允许添加的字段名’];

# 黑名单

protected $guarded = [‘拒绝添加的字段名’];

添加

# 方法一

save() # 对象属性方式

# 方法二

insert() #数组方式

# 方法三

create() # 数组方式 需要在模型中设置好fillable或guarded属性 使用

$data = [‘id’=>‘11’,‘name’=>''dade];

User::create($data );

查询

# 查询单条

first()

# 查询多条

get()

# 条件

where()

# 排序

orderBy()

# 取指定的值

value()

# 取指定的列

pluck()

# 查询总记录数

count()

User::first(1);//查单

User::all();//全部

User::where(‘id’,1)->get()->toArray();

User::where(‘id’,1)->get()->value(‘name’);//单要name

User::pluck(‘name’,‘id’);//单要name列

User::count();

User::offset(0)->limit(10)->get();

修改

# 方法一

save() # 对象属性方式

# 方法二

update() # 数组

User::where(‘id’,1)->update($date)

删除

delete()

User::delete(2);

软删除

表加上:deleted_at $table->softDeletes()

模型引入:use SoftDelete

protected $dates=[‘deleted_at’]

控制器

软删除:User::destrog(1);

User::get(); 查,已经不存在

User::onlyTrashed()->get; 查已经删除的

User::restore(); 恢复

数据库模型多表操作

一对一关系

新建两个表 如(user和order)order为主表,user为从表

$this->hasOne(关联model,[关联model的联系键],[本model的联系键]);

return $this->hasOne(Extuser::class, ‘uid’, ‘id’);

# 关联表中的外键名 user_id 本表中的主键ID为id

return $this->hasOne(user::class);

咧子

主order

protected $table = "order";
protected $guarded=[];
public function user(){
    return $this->hasOne(user::class,'外键id','主键id');
}

从user

protected $table = “user”;

protected $guarded=[];

控制器中调用

$order = order::with(‘user’)->where(‘id’,1)->first();

dump($order[‘user‘]【’id’])

一对多关系

新建两个表 如(user和order)order为主表,user为从表

# 关联表中的外键名 user_id 本表中的主键ID为id

return $this->hasMany(user::class);

咧子

主order

protected $table = “order”;
protected $guarded=[];
public function user(){
return $this->hasMany(User::class,‘外键的id’,‘主键id’);
}

从user

protected $table = “user”;

protected $guarded=[];

控制器中调用

$arts = order::with(['user'=>function($query){
    $query->where('id'>='1');
}])->where('id',1)->first();
多对多关系

用户表User,中间表user_auth,权限表auth

$this-> belongsToMany(关联表model,中间表表名,中间表中本User的关联ID,中间表中关联auth的关联ID);

return $this->belongsToMany(App\User::class, ‘user_auth_table’, ‘user_id’, ‘auth_id’);

咧子

用户表user

protected $table = “user”;

protected $guarded=[];

public function auth(){
return $this->belongsToMany(Auth::class, ‘user_auth’, ‘user_id’, ‘auth_id’);
}

中间表user_auth,不用创建模型

权限表auth

protected $table = “auth”;

protected $guarded=[];

控制器调用

$user = User::find(1);//user第一条数据

$auth = $user ->auth()->toArray();

dump($auth);

dump(array_column(auth ,‘name’));

修改中间表,同步中间表(user用户1只剩下1和2权限)

$user->auth()->syhc([1,2])

wed端session缓存和Cache

Cache

use Cache; # 门面

Cache::put(‘key’, ‘value’, $minutes);

# 设置永久缓存

Cache::forever(‘key’, ‘value’);

$value = Cache::get(‘key’);

$value = Cache::get(‘key’, ‘default’);

是否存在

Cache::has(‘key’)

# 删除单个

Cache::forget(‘key’);

# 清除所有的缓存

Cache::flush();

session

use Session # 门面

session([‘key’ => ‘value’]);

session([‘key’);

session::has(‘key’)

session::forget(‘key’);

闪存:Session::forget('nh,‘ss’)

with闪存:return redirect()->route(‘Aadem.index’)->with('nh,‘ss’);

Session('nh‘)

{{Session(‘ket’}}

中间件

创建中间件:php artisan make:middleware 中间件名

路由使用:路由->middleware(‘中间件名称’)

路由

api接口访问要加上api才可以访问到

Route::group(['prefix'=>'v1/admin','namespace'=>'Admin'],function (){
    Route::post('login','UsersController@login');
    Route::post('login/token','UsersController@token');
    Route::post('login/logOut','UsersController@logOut');
});

缓存

缓存到文件
use Cache;//门面
Cache::put('namess',"$users",3600);//保存
Cache::get('namess');//查
Cache::forget('namess');//删
Cache::flush();//删所有
缓存到redis
composer require predis/predis     安装
use Cache;//门面
Cache::put('namess',"$users",3600);//保存
Cache::get('namess');//查
Cache::forget('namess');//删
Cache::flush();//删所有

视图

return view('greeting', ['name' => 'James']);

输出{{$name}}
判断
@if($name=="dade1")
    dade11
@else
    333
@endif
遍历
@foreach($date as $it)
{{$it}}
@endforeach

//public目录下
<link rel="stylesheet" href="{{ URL::asset('/static/layui/css/layui.css') }}">
<script type="text/javascript" src="{{ URL::asset('js/jquery.min.js') }}"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值