加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

laravel框架详解

发布时间:2020-12-14 19:58:56 所属栏目:大数据 来源:网络整理
导读:一、基础篇 1、概念 Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速、安全地开发现代应用提供了必要的功能。2011年,Taylor Otwell首次将Laravel带给这个世界,彼时,Laravel就是一个全新且现代的框架。

一、基础篇

1、概念

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

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)模拟插入数据

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

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

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

2、连接数据库

.env文件

DB_HOST=127.0.0.1DB_DATABASE=laravel5DB_USERNAME=rootDB_PASSWORD=root

详细见:http://blog.csdn/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 = 'AppHttpControllers';
  将路由空间指向了控制器位置

找到空间之后命名空间、类、方法是如何传递的呢?
<code class="hljs">vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(分配器)

/**
 * Dispatch a request to a given controller and method.
 *
 * @param  IlluminateRoutingRoute  $route
 * @param  IlluminateHttpRequest  $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位置在 :

/**
 * Execute an action on the controller.
 *
 * @param  string  $method
 * @param  array   $parameters
 * @return SymfonyComponentHttpFoundationResponse
 */
public function callAction($method,$parameters)
{
    return call_user_func_array([$this,$method],$parameters);
}
 (2)建立控制器的两种方式:
      1、在app/Http/controllers/建立TestController.php

      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下新建文件夹控制器跳转(所见文件夹/视图名)

 (2)公共模板
      公共视图位置:resources/views/layouts/
      eg:app.blade.php    @yield('content')  
 公共视图引用:
//继承公用模板 
 @extends('layouts.app')</pre>


      app是 resources/views/layouts/app.blade.php 可以换成其他的 

@section('content')不一样的内容?@endsection此时不一样的内容会替换公共模板中的 @yield('content')视图中显示值

id}}">删除id) }}">eg:{{ $v->id }}@if(条件) ...@else ...@endifeg:@foreach ($data as $v)???????? id }}title }}message}}time}}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读