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. 【一天一道LeetCode】#67. Add Binary

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...

  2. C 语言之银行ATM机界面

    其实就是简单地对switch的用法,希望能给广大读者一些思路,写出自己的创意界面. #include <stdio.h> void main() { char SelectKey,Cred ...

  3. Android 免Root实现Apk静默安装,覆盖兼容市场主流的98%的机型

    地址:http://blog.csdn.net/sk719887916/article/details/46746991 作者: skay 最近在做apk自我静默更新,在获取内置情况下,或者已root ...

  4. PDA智能设备解决方案打包及部署

    演练:打包智能设备解决方案以便进行部署 Visual Studio 2008 本演练演示如何使用 Visual Studio 将应用程序及其资源打包到一个 CAB 文件中,以便可将其部署到最终用户的智 ...

  5. Android Support Design 控件 FloatingActionButton

    经常刚可以看到悬浮控件,比如印象笔记的下面那个绿色的悬浮按钮,这个控件非常简单也是来自Design Support Library中同理需要在android studio中加入依赖库:design库 ...

  6. android的Binder通信机制java层浅谈-android学习之旅(88)

    1.Service Manager的Java代理对象 在Java层中,Service Manager的代理对象类型为ServiceManagerProxy.它继承并且实现了IServiceManage ...

  7. Android应用---基于NDK的samples例程hello-jni学习NDK开发

    Android应用---基于NDK的samples例程hello-jni学习NDK开发 NDK下载地址:http://developer.android.com/tools/sdk/ndk/index ...

  8. ubuntu系统AndroidStudio修改内存大小

    位于android-studio/bin目录下的studio64.vmoptions和studio.vmoptions文件. 把Xms,Xmx,-XX:MaxPermSize,-XX:Reserved ...

  9. UML之概述

              UML,英文名曰:Unified  Modeling Language,她还有个中文名字叫统一建模语言,简单的来说,她就是一种绘制软件蓝图的标准语言.她的表达能力特别强,可以描述开 ...

  10. Java进阶(十四)实现每天定时对数据库的操作

    Java实现每天定时对数据库操作 现在有一个很棘手的问题:客户要求实现一个功能,就是每日凌晨自动计算慢性病订单是否有需要在今日提醒的,如果有则生成一条提醒记录到lm_notice之中. 如何在Web工 ...