Laravel 框架 基础(一)
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 框架 基础(一)的更多相关文章
- laravel框架基础知识总结
一.laravel简介 laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全:以下是本人在学习过程中记录的laravel比较基础的资料,权当学习笔记,请大神们多多指教 ...
- laravel框架基础(1)---入门与介绍
1.安装laravel5.7 (composer )2018-12-28 11:59:02 [作者:struggler] Php的版本要求:php>=7.1.3 打开php OpenSSL扩展 ...
- laravel框架基础(2)---laravel项目加载机制
当我们,通过浏览器请求laravel的时候 laravel就会根据我们的请求链接来选择对应的方法执行并返回我们所需要的实际结果. 那么这个过程是怎样的呢? 1.生命周期 2018-12-28 17:0 ...
- laravel框架基础知识点
一.数据库:DB 1.db查 DB::table('msg')->where('id','>',$id)->get() 查询单行 DB::table(' ...
- php的laravel框架快速集成微信登录
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...
- laravel框架总结(十) -- 返回值
以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助 先理解几个概念: 1>StdClass 对象=&g ...
- 使用 Laravel 框架:成为微信公众平台开发者
转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...
- 6个项目带你全面掌握Laravel框架
Laravel框架简介: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来,帮你构建一个完美的网络APP,而且每行 ...
- laravel框架详解
一.基础篇 1.概念 Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速.安全地开发现代应用提供了必要的功能.2011年,Taylor Otwell ...
随机推荐
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十五)
每次压赌要打开弹出菜单还是让人略觉不爽,下面我们再添加一个随机押注的按钮:自动随机选择选手和下赌金额. 打开spriteBuilder,修改GameInterface.ccb的界面,在Run按钮旁边添 ...
- 【算法导论】图的深度优先搜索遍历(DFS)
关于图的存储在上一篇文章中已经讲述,在这里不在赘述.下面我们介绍图的深度优先搜索遍历(DFS). 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj:访问vj之后,又访问vj的一个邻接点, ...
- python模块 - 常用模块推荐
http://blog.csdn.net/pipisorry/article/details/47185795 python常用模块 压缩字符 当谈起压缩时我们通常想到文件,比如ZIP结构.在Pyth ...
- [问与答]Python 中 __all__ 的作用 ?
你要是看Python的源码或者相关框架的源码,总是在 __init__.py 或者是源文件的开头看到一个 __all__ 变量的定义,今天就说说它的作用. orangleliu 问题出处 Can so ...
- 《java第一季之入门篇》的想法
学习java也有一段时间了,但是考虑到自己现在上课.复习.考试等耗费很多时间,感觉没有静下心来的时间去写一个长期的博客.计划今年7月1号开始写一套关于java的入门篇博客文章,入门篇计划这样--涵盖j ...
- 02_Nginx基本配置与参数说明 + 辅助命令
Nginx基本配置与参数说明,下面是nginx.conf配置文件 #运行用户 #user nobody; worker_processes 2; #全局错误日志及PID文件 #error_l ...
- LeetCode之“数学”:Plus One
题目链接 题目要求: Given a non-negative number represented as an array of digits, plus one to the number. Th ...
- 在 Linux 下用 mkdir 命令来创建目录和子目录
mkdir 是什么呢 Mkdir 是一个用来在 Linux 系统下创建目录的命令.此命令属于内建命令. 运行 mkdir 命令 你可以在你的控制台直接键入 mkdir 来使用它. $ mkdir 默认 ...
- Gradle 1.12用户指南翻译——第四十三章. 构建公告插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- nasm中的表达式
nasm表达式支持2个特殊的记号 $和$$;前者标识其所在源码行的开始处地址,所以你可以这样写死循环: jmp $ 而后者标识当前段开始处的地址,你可以通过: $-$$ 找出当前代码在段内的偏移. n ...