Laravel 框架

laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持、隐式模型绑定、简化 Eloquent 全局作用域、可选择的认证脚手架、中间件组、访问频率限制、数组输入验证优化等等。

一、 Compose安装laravel

compose下载http://www.phpcomposer.com/

环境要求:安装之前先确定您的环境是否是php5.4以上,最好是php7,推荐使用xampp。并且php要打开openssl

安装laravel

改镜象,避免翻墙:
composer config -g repo.packagist composer https://packagist.phpcomposer.com 新建项目
composer create-project laravel/laravel gwd --prefer-dist

二、目录介绍

这里不再详述了,请见官方文档。

三、路由起步(参数,连接符,默认值)

所有应用路由都定义在 App\Providers\RouteServiceProvider 类载入的 app/Http/routes.php 文件中。

最基本的 Laravel 路由接收一个 URI 和一个闭包:

Route::get('/', function () {
return 'Hello World';
});

代表 http://localhost/ 返回 Hello World,下面这个是post方法。

Route::post('add', function () {
//
});

也可以用以下方法:

Route::match(['get', 'post'], '/', function () {
//
}); Route::any('foo', function () {
//
});

结合控制器:

Route::get('/', "IndexController@lst");

分组:

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>['web','admin.login']], function () {
//Route::get('login','IndexController@login');
Route::get('index','IndexController@index');
Route::resource('article', 'ArticleController');
});

参数:

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
return $commentId;
});

默认值:

Route::get('posts/{post}/comments/{comment?}', function ($postId=0, $commentId=null) {
return $postId .'----'.$commentId;
});

资源路由:

Route::resource('article', 'ArticleController'); //生成n个方法

四、控制器

位于App\Http\Controllers

手动创建

<?php
namespace App\Http\Controllers;
class IndexController extends Controller{ public function index(){
return "welcome"; } }

artisan 创建控制器:

php artisan make:controller UserController

控制器分组:有时候要把控制器进行分组,只需要在App\Http\Controllers下新文件夹,然后把控制器放进去。(需要改命名空间和use路径)

use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use App\Http\Requests; class UserController extends Controller
{
public function index(){
return "你好";
}
//
}

五、视图

视图用的都是blade模板,位于view下面,有个示例文件welcome.blade.php。生产环境中只需要把模板拷到此处,重命名成blade.php。

控制器渲染模板

 public function index()
{
return view('index');
}

如果模板上层还有文件夹,比如模板位于view/web/a.index.blade.php,view('web.index');

用“.”来连接。

 public function index()
{
return view('web.index');
}
模板中只需要输出变量:<?php echo $data;?>

传参(单个):

 public function index()
{
$data="你好";
return view('web.index')->with('data',$data);
}

传参(多个):只需要放数组是,然后作为第二个参数传给视图

 public function index()
{
$data1="你好1";
$data2="你好2";
$data3="你好3";
$data=[
'data1'=>$data1,
'data2'=>$data2,
'data3'=>$data3
];
return view('web.index', $data);
}

compact传值:

 public function index()
{
$data1="你好1";
$data2="你好2";
$data3="你好3";
$data=[
'data1'=>$data1,
'data2'=>$data2,
'data3'=>$data3
];
return view('web.index', compact('data','data1'));
} 模板中调用:<?php echo $data['data1'];?>

模板简单语法:

1、 单个变量{{$name}}

2、原样输出:

@{{$name}}

3、判断变量是否为空并作处理

{{$name or '姓名为空'}}

4、判断变量是否存在并作逻辑处理

{{isset($data1)?$data1:"不存在"}}

5、 转义 显示未转义的数据。在默认情况下,Blade 模板中的 {{ }} 表达式将会自动调用 PHP 的 htmlentities 函数,以避免 XSS 攻击。如果你不希望你的数据被转义,可以使用下列的语法:

{!!$str!!}

流程控制

@if($name>10)

大人
@else
小孩
@endif

除非--否则

@unless($name>10)
小孩
@endunless

for循环

@for($i=0;$i<10;$i++)
{{$i}}
@endfor

foreach

@foreach($data as $v)
{{$v}}
@empty
为空
@endforeach

while

@whiile(true)
你是真的
@endwhile

子模板

包含

@include(index)
@include('common.header',['page'=>'首页'])
被包含的
<div class="header">我是公共头部 - 您当前访问的页面是:{{$page}}</div>

嵌套

母版

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.header{height:100px;background: darkred}
.middle{height: 300px; background: lightblue}
.footer{height:100px;background: yellowgreen}
</style>
</head>
<body>
<div class="header">我是公共头部</div>
{{--@yield('content')--}} @section('content')
<P>我是主模板里的内容</P>
@show <div class="footer">我是公共底部</div></body>
</html> 子版 @extends('layouts.home') @section('content')
@parent
<div class="middle">我是layouts区域的替换内容 XXXXXXXX</div>
@endsection

Laravel 框架 基础(一)的更多相关文章

  1. laravel框架基础知识总结

    一.laravel简介 laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全:以下是本人在学习过程中记录的laravel比较基础的资料,权当学习笔记,请大神们多多指教 ...

  2. laravel框架基础(1)---入门与介绍

    1.安装laravel5.7 (composer )2018-12-28 11:59:02 [作者:struggler] Php的版本要求:php>=7.1.3  打开php OpenSSL扩展 ...

  3. laravel框架基础(2)---laravel项目加载机制

    当我们,通过浏览器请求laravel的时候 laravel就会根据我们的请求链接来选择对应的方法执行并返回我们所需要的实际结果. 那么这个过程是怎样的呢? 1.生命周期 2018-12-28 17:0 ...

  4. laravel框架基础知识点

    一.数据库:DB    1.db查    DB::table('msg')->where('id','>',$id)->get()       查询单行    DB::table(' ...

  5. php的laravel框架快速集成微信登录

    最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...

  6. laravel框架总结(十) -- 返回值

    以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助   先理解几个概念: 1>StdClass 对象=&g ...

  7. 使用 Laravel 框架:成为微信公众平台开发者

    转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...

  8. 6个项目带你全面掌握Laravel框架

    Laravel框架简介: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来,帮你构建一个完美的网络APP,而且每行 ...

  9. laravel框架详解

    一.基础篇 1.概念 Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速.安全地开发现代应用提供了必要的功能.2011年,Taylor Otwell ...

随机推荐

  1. Adapterview和adapter的联系

    在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件 ...

  2. Asp.Net中使用JQueryEasyUI--善良公社项目

    jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互.动画.特效和可更换主题的可视控件.我们可以直接用它来构建具有很好交互性的web应用程序 ...

  3. 【翻译】Ext JS——高效的编码风格指南

    原文:ExtJS - Efficient coding style guide 作者:Raja 切勿使用"new"关键字:在Ext JS中,使用"new"关键字 ...

  4. 目前调试移动设备程序只能通过USB线缆

    就像iOS,转移(到设备上)并调试App不可能通过WiFi或蓝牙连接. 一个有线的USB线缆连接现今主要用来调试. 确保你直接将Android设备插入Mac的USB接口,避免使用USB hubs和扩展 ...

  5. [Python]Flask构建网站分析应用

    原文Saturday morning hacks: Building an Analytics App with Flask - 由orangleliu友情翻译 ,主要是通过埋点技术来实现web网页的 ...

  6. [面试算法题]有序列表删除节点-leetcode学习之旅(4)

    问题描述 Write a function to delete a node (except the tail) in a singly linked list, given only access ...

  7. 《java入门第一季》之面向对象(继承总结)

    继承已经全部写完了,接下来通过几个案例对继承问题做一个总结: /* 看程序写结果: A:成员变量 就近原则 B:this和super的问题 this访问本类的成员 super访问父类的成员 C:子类构 ...

  8. Mondrian Schema workbench工作界面 简介(实在懒得写,居然有人弄了,收藏了)

    转自:http://hi.baidu.com/dinguangx/item/37e78be29aebc1adcf2d4f89 Schema Schema 定义了一个多维数据库.包含了一个逻辑模型,而这 ...

  9. masm6.11的BUG?

    mov eax,[ebp + eax] ;->DS: mov eax,[eax + ebp] ;->SS: 上述2行代码生成的机器码反了,据说masm8也有此问题,但是masm9是正常的.

  10. 修改win7系统sid

    百度百科定义: Windows使用SID来表示所有的安全对象(security principals).安全对象包括主机,域计算机账户,用户和安全组.名字Name是用来代表SID的一个方法,可以允许用 ...