laravel 基础知识

1. 使用 laravel 设计时,要注意服务器的版本,注意是否与 laravel 对应可实现 。

2.指定安装 laravel 版本 : 

composer create-project --prefer-dist laravel/laravel blog01 "5.2.*"
(laravel 框架名字)(laravel指定版本)

 3.三种删除方式:DB::facade ; 查询构造器 ; Eloquent ORM ;其中模型删除中有两种方式 ->delete()和->destroy(),delete()删除再没有数据时不会抛出异常,而destroy()删除再没有数据时会抛出异常;

1

  1.安装laravel  2.核心目录文嘉  3.路由  4.mvc   5. 数据库的三种操作  6.blade模板引擎

   2. Controller介绍  (1)Request (2)Session (3)Response (4)Middleware

(1)判断请求类型 $if($request->isMethod('post'))   //  $request->ajax() //判断请求路径 $request->is('student/*) // 获取当前url $request->url()

(2)Session:使用Session的三种方式:HTTP request类的session()放大 ; session()的辅助函数 ; Session facade 。

Session::push('key1', '12');Session::push('key1', '34'); Session::get('key1');{session中放置数组}   

Session::forger(''); / Session::flush(); / Session::all()

(3) 字符串  //  视图   //  Json  //  重定向

json  : $data = ['err'=>'or', 'ert'=>1 ]; return response()->json($data);  //数组转json

重定向:return redirect('位置')->with('session用法')   == return redirect()->action(‘控制器和方法名’)

return  redirect()->route('别名');  return redirect()->back();返回上一页面

3. laravel 表单。

(1)案例演示

 

 

(2)静态资源管理及模板布局

静态资源文件:.js ; .css 。//

blade 模板 : @section()@show(有继承) // @yield(无继承)  // src={{ asset('') }} ;  @extends() // @section() @stop // @include  

 

 

(3)表单列表及分页实现

关联模型Model,连接数据库:$table, $fillable, $timespace ; Controller中通过关联模型实例化对象,获取数据 $student ;//

view中通过对象输出数据库查询内容:$student->name... //

<td>{{ date('Y-m-d H:i:s', $student->updated_at) }}</td>

对时间查询的格式处理。!!此处数据库created_at格式int(11)!!//

显示时间与北京时间差8小时:因为电脑默认全球时间,所以需要更改: .env 文件 +  TIMEZONE=PRC ,//

app/config/app/php 中 将  'timezone' =>UTC' (更改为) =>   'timezone' => env('TIMEZONE', 'UTC')。//

 

 

(4)通过表单实现新增及操作状态提示功能//

1.通过表单实现模型新增和create新增  //   2.提交到当前方法和指定方法

继承模板文件,重写内容区块  //

默认选中:

{{ Request::getPathInfo() !== '/student/create' ? 'active': ' ' }} ">

 Controller中 create方法 和 save方法,【表单中使用数组命名,控制器使用 save 时使用数组名可以全部获取】//

Request获取数据---数组$date[], $  = new Model()实例化对象 , $ = $data[]; -save()保存//

redirect() 响应跳转到指定页面.(技术:重定向,响应)//

提交到不同的方法:action="save" 和 action=""(默认当前方法);//

两种保存方法a.实例化对象,对象内容依次等同于数组键值b.直接模型创建(使用数据)Model::create($数组);(fillable:允许批量赋值)//

设置提示:session 的暂存数据falsh;return->redirect()->with('sucess','提示内容');(要使用session,就要应用到中间件:kernel.php)//

csrf攻击:表单+csrf_token()[也可以使用csrf_field():包含csrf_token()]//

【需要在index.blade.php继承message.blade.php】成功信息:message.blade.php中 通过@if(Session::has('success'))【判断有值】; @(session::get('success')【取值】 ; @endif //

@if(Session::has('error')); @(session::get('error') @endif 实现 

 

(5)表单验证

控制器验证   // Validator 验证  //  数据保持

(错误信息可制订)

validate::( , [], [], [])

$this->validate($request, [校验], [错误提示消息], [错误处名称设置])

a.中间件组中shareErrors做的事情,分享错误到页面,全局变量errors;新建验证页面validator.blade.php,加载到create页面,

验证页面:判断errors存在@foreach调用所有错误:$errors->all as $error 打印$error;可以了!

获取错误信息-》自定义;validator页面处理

b.Validator 类验证

\Validator::make($request->input(), [], [], [])  // 如果有错误,将错误重定向到页面return  redirect()->back();  //

向响应页面传递错误  ->withErrors($validator);=>然后返回页面处理:create页面=>{{$errors->first(student.name) }}【指定错误对象】

c.数据保存:

 

 

(6)通过模型处理性别

const 定义常量     =      ; 定义方法 public function  (){

}在方法中对数据进行处理   ;      array_key_exists() 函数检查某个数组中是否存在指定的键名,

在页面调用Model模型里面的方法::: 【模型文件定义方法(public function ways(){} ),控制器引用用方法(use *\* ;),

view页面使用方法(控制器把模型实例化为对象,通过rdirect响应把对象传递到页面,注意:对象是可以使用方法的。)】

 

 

(7)通过表单实现修改

{{ $data ? $data : ' ' }}  判断 $date 有无,

 

(8)表单中查看详情及删除

 确定删除:<a onclick = "if(confirm('确定删除吗?') == false) return false"></a>

 

 

 

 

 

文件上传:http://laravelacademy.org/post/3181.html

posted on 2018-01-22 09:32  盧鵬  阅读(224)  评论(0)    收藏  举报