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
浙公网安备 33010602011771号