跟我学Laravel之快速入门


Posted in PHP onOctober 15, 2014

安装

Laravel框架使用 Composer 执行安装和依赖管理。如果还没有安装的话,现在就开始 安装 Composer 吧。

安装Composer之后,你就可以通过命令行使用如下命令安装Laravel了:

composer create-project laravel/laravel your-project-name
或者,你可以从 Github仓库 下载。接下来,在 安装Composer 之后,在项目根目录下执行 composer install 命令。该命令将会下载以及安装框架的依赖组件。

写入权限

安装完 Laravel ,你还需要为web服务器设置 app/storage 目录的写入权限。请参考 安装 一节以获取更多关于配置方面的信息。

目录结构

安装完框架后,你需要熟悉一下该项目的目录结构。app 文件夹包含了一些例如 views ,controllers 和 models 目录。 程序中大部分代码将要存放这些目录下。你也可以查看一下 app/config 文件夹里一些配置项目。

路由

我们开始创建我们第一个路由。在 Laravel,简单路由的方法是闭包。打开 app/routes.php 文件加入如下代码:

Route::get('users', function()
{
    return 'Users!';
});
现在,你在 web 浏览器输入 /users,你应该会看到 Users! 输出。真棒!已经创建了你第一个路由。

路由也可以赋予控制器类。例如:

Route::get('users', 'UserController@getIndex');
该路由告知框架 /users 路由请求应该调用 UserController 类的 getIndex 方法。要查看更多关于路由控制器信息,查看 控制器文档 。

创建视图

接下来,我们要创建视图来显示我们用户数据。视图以HTML代码存放在 app/views 文件夹。我们将存放两个视图文件到该文件夹:layout.blade.php 和 users.blade.php。首先,让我们先创建 layout.blade.php 文件:

<html>

    <body>

        <h1>Laravel Quickstart</h1>
        @yield('content')

    </body>

</html>

接着, 我们创建 users.blade.php 视图:

@extends('layout')
@section('content')

    Users!

@stop

这里的语法可能让你感到陌生。因为我们使用的是 Laravel 模板系统:Blade。Blade 非常快,因为仅使用了少量的正则表达式来为你的模板编译成原始PHP代码。Blade提供强大的功能,例如模板继承,还有一些常用的PHP控制结构语法糖,例如 if 和 for。 查看 Blade 文档 了解更多。

现在我们有了我们视图,让我们返回 /users 路由。我们用视图来替代返回 Users!:

Route::get('users', function()

{

    return View::make('users');

});

漂亮!现在你成功创建了继承至layout的视图。接下来,让我们开始数据库层。

创建迁移

要创建表来保存我们数据,我们将使用 Laravel 迁移系统。迁移描述数据库的改变,这让分享给他们团队成员非常简单。

首先,我们配置数据库连接。你可以在 app/config/database.php 文件配置所有数据库连接信息。默认,Laravel 被配置为使用 SQLite,并且一个 SQLite 数据库存放在 app/database 目录。你可以将数据库配置文件的 driver 选项修改为 mysql 并且配置 mysql 连接信息。

接下来,要创建迁移,我们将使用 Artisan CLI。在项目根目录中,在终端中执行以下命令:

php artisan migrate:make create_users_table

然后,找到生成的迁移文件 app/database/migrations 目录。该文件包含了一个包含两个方法: up 和 down 的类。在 up 方法,你要指名数据库表的修改,在 down 方法中你只需要移除它。

让我们定义如下迁移:

public function up()

{

    Schema::create('users', function($table)

    {

        $table->increments('id');

        $table->string('email')->unique();

        $table->string('name');

        $table->timestamps();

    });

}
public function down()

{

    Schema::drop('users');

}

然后,我们在项目根目录中使用终端运行 migrate 命令来执行迁移:

php artisan migrate

如果你想回滚迁移,你可以执行 migrate:rollback 命令。现在我们已经有了数据库表,让我们让添加一些数据!

Eloquent ORM

Laravel 提供非常棒的 ORM:Eloquent。如果你使用过 Ruby on Rails 框架,你会发现 Eloquent 很相似,因为它遵循数据库交互的 ActiveRecord ORM 风格。

首先,让我们来定义个模型。ELoquent 模型可以用来查询相关数据表,以及表内的某一行。别着急,我们很快会谈及!模型通常存放在 app/models 目录。让我们在该目录定义个 User.php 模型,如:

class User extends Eloquent {}

注意我们并没有告诉 Eloquent 使用哪个表。Eloquent 有多种约定, 一个是使用模型的复数形式作为模型的数据库表。非常方便!

使用你喜欢的数据库管理工具,插入几行数据到 users 表,我们将使用 Eloquent 取得它们并传递到视图中。

现在我们修改我们 /users 路由如下:

Route::get('users', function()

{

    $users = User::all();
    return View::make('users')->with('users', $users);

});

让我们来看看该路由。首先,User 模型的 all 方法将会从 users 表中取得所有记录。接下来,我们通过 with 方法将这些记录传递到视图。with 方法接受一个键和一个值,那么该值就可以在视图中使用了。

激动啊。现在我们准备将用户显示在我们视图!

显示数据

现在我们视图中已经可以访问 users 类,我们可以如下显示它们:

@extends('layout')
@section('content')

    @foreach($users as $user)

        <p>{{ $user->name }}</p>

    @endforeach

@stop

你可以发现没有找到 echo 语句。当使用 Blade 时,你可以使用两个花括号来输出数据。非常简单,你现在应该可以通过 /users 路由来查看到用户姓名作为响应输出。

这仅仅是开始。在本系列教程中,你已经了解了 Laravel 基础部分,但是还有更让人兴奋的东西要学。继续阅读该文档并且深入Eloquent和Blade这些强大的特性。或者你对队列 和 单元测试 感兴趣。或许是你想了解IoC Container, 选择权在于你!

PHP 相关文章推荐
dedecms模板标签代码官方参考
Mar 17 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
php加密之discuz内容经典加密方式实例详解
Feb 04 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
Oct 09 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
PHP autoload使用方法及步骤详解
Sep 05 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 #PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 #PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 #PHP
php保存二进制原始数据为图片的程序代码
Oct 14 #PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 #PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 #PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 #PHP
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
详谈js模块化规范
2017/07/07 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
JS实现图片切换特效
2019/12/23 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
Python小进度条显示代码
2019/03/05 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
python如何处理程序无法打开
2020/06/16 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
小学生中国梦演讲稿
2014/04/23 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
妈妈别哭观后感
2015/06/08 职场文书
课程设计感想范文
2015/08/11 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS