laravel框架是现在php框架中十分流行的框架

一、基础篇

1、概念

Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速、安全地开发现代应用提供了必要的功能。
2011年,Taylor Otwell首次将Laravel带给这个世界,彼时,Laravel就是一个全新且现代的框架。Laravel基于MVC架构,可以满足诸如事件处理、用户身份验证等各种需求,同时通过包管理实现模块化和可扩展的代码,并且对数据库管理有着健壮的支持。
不管是专家还是新手,一旦接触到Laravel,都会有相见恨晚之感——这正是你在为PHP项目寻找的框架。

2、安装

1、找到安装包傻瓜式安装

2、composer安装

下载安装包命令:composer create-project laravel/laravelblog

composer一般在项目中使用composer.json

eg:require 关键字:哪些包是你项目所需要的

{

   "require":{

       "monolog/monolog":"1.0.*"

   }

}

安装命令:找到composer.json位置 执行安装命令 composer install

3、修改端口  php artisan serve  命令  laravel

(1)eg:php artisan serve --prot =8080 (设置端口)

(2)eg:php artisan make:model Article (建立model)

去看看你的 app 目录,下面是不是多了一个 Article.php 文件?那就是 Artisan 帮我们生成的 Model 文件

(3)eg:php artisan migrate(数据库的迁移)

migration 是啥

打开learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php 文件,你肯定能一眼看出它的作用:用 PHP 描述数据库构造,并且使用命令行一次性部署所有数据库结构

模拟插入数据

(4)模拟插入数据
php artisan make:seeder ArticleSeeder
php artisan db:seed

(5)eg:php artisan make:controller Admin/HomeController  建立控制器

(6)eg:php artisan make:auth   激活laravel 中auto系统    (Laravel 利用 PHP5.4 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管理的系统,例如公司内部用的简单管理系统)
(7)eg:php artisan --version 查看当前版本

详细见:http://blog.csdn.net/woshihaiyong168/article/details/53197366

4、入口文件、数据库连接、默认路由定义

1、laravel 入口文件 public 下的index.php

访问目录下public 这样laravel就跑起来了

2、连接数据库

.env文件

DB_HOST=127.0.0.1
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=root

详细见:http://blog.csdn.net/woshihaiyong168/article/details/53197366


3、定义路由 (laravel受欢迎的主要原因)

     路由位置:app/Https/routes.php

    Route::any('/', 'HomeController@add'); 定义任何方式都能访问的默认控制器和默认方法

    Route::post('/add', 'HomeController@add');  定义 post方式方法

    Route::get('/delete/{id}','HomeController@del');   定义get方式接值:缺点必须在方法参数中写入所接值

    定义路由组

    Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 'prefix' => 'admin'], function() {
    Route::get('/', 'HomeController@index');
    });

    定义路由得方式有很多详细见:https://laravel-china.org/docs/5.1/routing#route-groups



二、因为laravel框架是基于MVC的下面我们就从其着手分析

1、框架目录篇

    

2、MVC篇

    控制器位置:app/Http/controllers/建立控制器

    一、控制器

     (1)Controller 控制器原理解析:

     我们通过路由找到控制器那么我们这个路由位置在哪里?

      app/Providers/RouteServiceProvider.php (路由服务供应者)

protected $namespace = 'App\Http\Controllers';将路由空间指向了控制器位置找到空间之后命名空间、类、方法是如何传递的呢?vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(分配器)
/**
 * Dispatch a request to a given controller and method.
 *
 * @param  \Illuminate\Routing\Route  $route
 * @param  \Illuminate\Http\Request  $request
 * @param  string  $controller
 * @param  string  $method
 * @return mixed
 */
public function dispatch(Route $route, Request $request, $controller, $method)
{
    $instance = $this->makeController($controller);
    return $this->callWithinStack($instance, $route, $request, $method);
     // var_dump($controller);
}
 此方法就是传递路由中定义的控制器、方法下面我们以HomeController.php为例:

class HomeController extends Controller
所继承的Controller位置在 : 
    vendor/laravel/framework/src/Illuminate/Routing/Controller.phpcontroller.php 中定义了一个抽象类,其下方法有注册中间器在控制器中、执行一个方法在控制器中,等eg:
/**
 * Execute an action on the controller.
 *
 * @param  string  $method
 * @param  array   $parameters
 * @return \Symfony\Component\HttpFoundation\Response
 */
public function callAction($method, $parameters)
{
    return call_user_func_array([$this, $method], $parameters);
}(2)建立控制器的两种方式:1、在app/Http/controllers/建立TestController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
class TestController extends Controller
{
     public function show(){      

      echo  123;
     }}  在routes.php中定义路由:
Route::get('/test', 'TestController@show');2、在cmd窗口进入到当前框架目录下 eg:php artisan make:controller Admin/HomeController     ("位置app/Http/controllers/",控制名)(3)控制器操作:
    重定向: return redirect()->action('HomeController@show');             return redirect('show')    显示视图层以及传值:
   return view('upda',["list"=>$list]);
  二、view视图层   (1) 视图层位置:resources/views          文件后缀为 .blade.php  控制器中显示视图 输入名字就行         如果是在views下新建文件夹控制器跳转(所见文件夹/视图名)  
     @section('content')      不一样的内容       @endsection     此时不一样的内容会替换公共模板中的 @yield('content')

   视图中显示值   <form action="{{URL('/add')}}" method="post" >

   <a href="{{URL('/del')}}?id={{$v->id}}">删除</a>   <a href="{{ url('article/'.$article->id) }}">   eg:{{ $v->id }}

@if(条件) ...@else ...@endif

eg:@foreach ($data as $v)         <tr>            <td>{{ $v->id }}</td>            <td>{{ $v->title }}</td>             <td>{{ $v->message}}</td>            <td>{{ $v->time}}</td>            <td><a href="delete/{{ $v->id }}">删除</a>|<a href="upda/{{ $v->id }}">修改</a></td>         </tr>    @endforeach

     @for ($i = 0; $i < 10; $i++)    The current value is {{ $i }}@endfor  三、model层使用请见博客

 (2)公共模板公共视图位置:resources/views/layouts/eg:app.blade.php    <body>@yield('content')</body>  公共视图引用://继承公用模板 @extends('layouts.app')
      app是 resources/views/layouts/app.blade.php 可以换成其他的 

    

 


    







laravel框架详解相关推荐

  1. laravel框架详解 学以致用

    系列文章目录 提示: laravel介绍.文件配置.路由使用 .控制器的使用 . 数据的操作.@csrf防护.文件上传 文章目录 系列文章目录 laravel框架 详解一些功能 学以致用 一.lara ...

  2. jQuery Validate验证框架详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.导入js库 <script type="text/javascript" src="& ...

  3. shiro放行_Shiro框架详解 tagline

    部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...

  4. [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

    深入浅出 Cocoa 之 Core Data(1)- 框架详解 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 Core data 是 Cocoa 中处 ...

  5. WebDriver自动化测试框架详解

    webDriver自动化测试框架详解 一. 简介 WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁 WebDri ...

  6. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  7. Android 动画框架详解,第 1 部分

    2019独角兽企业重金招聘Python工程师标准>>> Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框 ...

  8. springboot2整合mysql5_SpringBoot2整合SSM框架详解

    SpringBoot2整合SSM框架详解 发布时间:2019-01-15 21:33, 浏览次数:1218 , 标签: SpringBoot SSM <>开发环境 * 开发工具:Eclip ...

  9. Django REST FRAMEWORK swagger(一)框架详解

    Django REST FRAMEWORK swagger(一.框架详解) 一.Django REST  SWAGGER框架图 具体见下图 二.说明 RESTFul说明 每一个URI代表一种资源: 客 ...

  10. 框架详解_Qt开发技术:QtCharts(一)QtCharts基本介绍以及图表框架详解

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

最新文章

  1. MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-4
  2. 在spark上构造随机森林模型过程的一点理解
  3. 【AI应用】三分钟,带你了解英特尔明年重点发力的这八大方向
  4. 6. Qt 信号与信号槽(8)实例分析
  5. python笔记之序列(dict的基本使用和常用操作)
  6. php检查在线用户,php – 检查用户是否在线laravel
  7. 《iPad开发从入门到精通》——6.2节系统主界面
  8. oracle dblink性能,谈谈Oracle为2019年埋下的雷:Oracle关于DBLINK的预警
  9. 联想官方出品小工具:关闭或开启 Win10 系统自动更新
  10. Tech Talk| Redmi K50 电竞版手机极致散热技术详解
  11. 某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间--软考系统架构设计师--不会做题?“猿”来绘个图解决吧
  12. 海思AI芯片(35xx):板端运行报错
  13. Titanic第二章:第一节数据清洗及特征处理
  14. python 3 4j不是合法的_3 4j 是合法Python数字类型。
  15. 计算机电源输出电压 电流,电脑USB接口的输出电压以及电流你知道吗?
  16. TextOut字体设置
  17. MTK,QAC运用minicom和tftp进行uboot
  18. PyTorch DDP
  19. 如何用java实现一个p2p种子搜索(3)-dht协议实现
  20. 爱江山更爱美人 歌词

热门文章

  1. 爱立信软件测试实习生面试
  2. 科创板在6月的这30天:方邦电子等31家过会并提交注册 新受理28家
  3. 最新版mysql8.0.13如何汉化_MySQL 8.0.13 下载安装教程图文详解
  4. IP切换器是做什么用的?
  5. linux 更新系统命令,Linux系统自动更新时间命令的详细说明
  6. win7桌面怎么弄计算机,电脑动态桌面,详细教您win7怎么设置电脑动态桌面
  7. 屏蔽网站广告插件:广告终结者
  8. 【SQL Server 2005 彻底卸载、重装问题】
  9. windows虚拟网卡驱动开发~开源(建议收藏)
  10. 犀牛插件学习——T-Splines