laravel初识

简介
  MVC框架
    PHP应用程序的开发形式
      直接使用PHP语言进行面向过程的网页开发
      使用面向对象形式
      使用MVC框架 极大的提高生产力
    MVC框架基本思想
      把应用程序强制性的划分成三部分:模型层、视图层、控制器层
    常用的MVC框架
      TP、COdeIgniter、laravel、symfony、zend framwork、YII等
laravel准备工作
  PHP开发程序
  php_fig
    官方网站:
    作用:制定一系列PHP开发规范,是未来PHP框架所需要遵循的规范
    包含的内容
      PSR-0
      PSR-1
      PSR-2
      PSR-3
      PSR-4
  composer
    官方网站:
    安装
      php环境要求:php5.4以上
      php扩展支持:openssl扩展
      php.exe文件路径
    使用
      通过命令下载资源
        require 直接下载依赖库,同时把依赖库配置信息写入到composer.json文件中
        install 直接按照composer.json配置文件指明,下载依赖库
      借助配置文件下载资源
        require配置项
          "库完整名称":"版本号"
      使用下载到的资源
        下载到的外部库,会自动位于当前目录下的vender目录中
        使用下载资源时,直接在应用程序入口文件中,引入'vender/autoload.php'文件,就可以直接使用外部库和命名空间
  参考网站
    
    
    
    https://github.com
    
    
安装laravel
  命令:composer create-project laravel/laravel --prefer-dist
  laravel/laravel和laravel/framwork
    laravel/laravel:laravel框架的示例程序,已经包含laravel框架源代码和其他的外部库
    laravel/framwork:仅仅laravel框架源码
  目录结构
    app目录:应用目录
    config:配置文件
    database目录:数据库迁移migrate'
    public:入口文件|静态资源文件
    resource:视图文件
    vendor:外部库(包含laravel框架源码)
    .env:laravel框架配置
  运行第一个laravel程序
    直接运行:通过url访问public目录
    配置虚拟主机:phpstudy配置
      站点管理器
      监听端口号配置
数据库迁移
  数据库迁移简介
    migrate简介
      方便团队开发,一次更改,团队成员都会受到影响
      直接使用PHP代码,而不是使用sql语句来操作数据库
    命令:php artisan migrate
    删除自带的用户认证模块:php artisan fresh
    配置数据库账号信息:.env文件
  创建msg数据表
    创建数据库文件
    目录:database\migrations
      年_月_日_时分秒_create_表名_table.php
    migrate
  参考网站:
    
    laravel-china.org/docs/5.0/migrations
    segmentfault.com/a/1190000002584573
数据库填充
  创建模型类
    一个数据库模型类对应一个数据表
    目录:app/目录下直接创建
    文件名:表名.php
      表名首字母大写,并且去掉s后缀
      比如msgs数据表,所对应的模型文件为Msg.php
    模型类结构:类名 extends Model
  数据填充
    数据填充文件
      位置:database/seeds/
      文件名:表名TableSeeder.php
      数据填充文件基本结构 类名 extends Seeder
    执行数据库填充命令
      在databaseSeeder中调用
      php artisan db:seed
      可能会出现问题
        引入类完成命名空间名
        使用composer命令 composer dump-autoload
路由功能
  应用程序目录结构
    app目录:应用程序核心目录
      http目录:控制器文件目录,路由文件目录
      模型文件:默认情况下在app/下
    config目录:应用程序配置文件目录
      .env配置文件:给出最常用的配置,这些配置会被config目录中的配置文件调用
    database:数据库迁移
    public:应用程序入口文件,静态资源等(js.css.图片等)
    resource:视图文件目录
    storage:应用程序动态生成日志缓存生成视图文件等目录
  路由功能使用
    作用:把用户的http请求交给指定的控制器或者功能来处理它
    路由三种常见形式
      直接http请求类型路由
        Route::get('url信息','处理的逻辑地址或功能代码')
        Route::put('url信息','处理的逻辑地址或功能代码')
        Route::post('url信息','处理的逻辑地址或功能代码')
        Route::delete('url信息','处理的逻辑地址或功能代码')
      Resource路由 restful路由
        Route::resource('url信息','处理的逻辑地址或功能代码')
      Controller控制器路由
        Route::controller('url信息','控制器名称')
  路由的处理
    把路由的处理交给控制器的某个动作处理
    直接处理路由(闭包函数)
  路由参数
    Route::get('view|{id?}',function($id){
      return 'msg/view/'.$id;
    })
  参考网站
    
控制器
  创建控制器类
    手工创建
      目录:app/http/controllers/
      文件名:控制器名Controller
      需要继承laravel框架控制器
    artisan命令行创建:php artisan make:controller 控制器名
      要使用artisan命令时必须在laravel根目录下进行
    说明:标准restful形式URL
      index()
      create()
      store()
      show()
      edit()
      update()
      destroy()
  控制器和路由
    为控制器绑定路由时,可以直接使用http请求形式的路由
      每一个url绑定到某一个动作上
      Route::get('view|{id?}',MsgController@index)
    RESTful形式的路由(只支持7中动作)
      Route::resource('msg',MsgController)
    隐式控制器路由
      Route::controller('msg',MsgController)
      控制器中需要get方法名
        getIndex()---/index
视图
  控制器中加载视图
    直接使用return '字符串';返回
    在控制器中返回视图文件
      return view('视图文件名')
      注意:视图文件默认位于resource/view下
  控制器传递数据给视图
    传统形式:view('视图文件')->with('k','v')
    魔术形式:view('视图文件')->withName('v')
  blade模板
    视图文件可以是php原生代码文件,也可以使用laravel自带的blade模板
    blade模板
      命名:文件名.blade.php
      支持layout布局、原生php代码、blade标签等{{}}
      layout布局
        @yield
        @extends @endextends
        @section
        @foreach @endforeach
留言板示例
  控制器中创建动作
    动作和路由要有绑定
    读取数据、显示视图(把数据传递给视图)
    定制路由:基本http请求
  创建视图文件
    视图文件
    视图文件中实现控制结构:循环、选择
  从数据库中读取数据
    模型类基本结构
    如何获取所有数据
      获取到的数据我们可以使用foreach循环结构依次处理每一个对象
  添加留言
    CSRF保护
      <input type="hidden" value="{{ csrf_token() }}">
    接收表单数据
      路由问题
        当前动作只需要视图,可以直接使用闭包形式,其他使用控制器动作形式
        使用request::input()接收数据
    重定向
      redirect('url')
      redirect()->route('路由名称')
  删除留言
    模型类::destroy(主键)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdpwf.html