安装 Laravel:
Laravel 使用 [Composer] 来管理代码依赖。所以,在使用 Laravel 之前,请先确认你的电脑上安装了 Composer。
方法一:通过laravel安装器安装:
在cmd执行 composer global require "laravel/installer"
请确定你已将 ~/.composer/vendor/bin 路径加到 PATH,只有这样系统才能找到 laravel 的执行文件。
一旦安装完成,就可以使用 laravel new 命令在指定目录创建一个新的 Laravel 项目,例如:laravel new blog 将会在当前目录下创建一个叫 blog 的目录,此目录里面存放着新安装的 Laravel 和代码依赖。这个方法的安装速度比通过 Composer 安装要快上许多
方法二:通过composer的laravel:
在要安装的根目录下执行composer create-project --prefer-dist laravel/laravel blog "5.2.*" //本次是安装5.2
———————————————————————————————————————
配置:
1.首先
确认服务器访问项目是否映射到public目录,其次确认.env加密串文件有无生成,相关的目录权限是不是完全控制或775
app/config/app.php 文件中的 debug 选项设置为 true (注:开启开发模式,更友好的开发提示);
可以使用config('app.timezone');来获取config目录下任意配置文件配置项的值
并且可以使用config(['app.timezone' => 'America/Chicago']);来在运行时更改
2.了解目录结构:
文件/文件夹
作用
- app/
包含了站点的 controllers(控制器),models(模型),views(视图)和 assets(资源)。这些是网站运行的主要代码,你会将你大部分的时间花在这些上面。本文主要关注的是这个文件夹。 - bootstrap
用来存放系统启动时需要的文件,这些文件会被如 index.php 这样的文件调用。 - public
这个文件夹是唯一外界可以看到的,是必须指向你 web 服务器的目录。它含有 laravel 框架核心的引导文件 index.php,这个目录也可用来存放任何可以公开的静态资源,如 css,Javascript,images 等。 - vendor
用来存放所有的第三方代码,在一个典型的 Laravel 应用程序,这包括 Laravel 源代码及其相关,并含有额外的预包装功能的插件。 - app/config/
配置应用程序的运行时规则、 数据库、 session等等。包含大量的用来更改框架的各个方面的配置文件。大部分的配置文件中返回的选项关联PHP数组。 - app/config/app.php
各种应用程序级设置,即时区、 区域设置(语言环境)、 调试模式和独特的加密密钥。 - app/config/auth.php
控制在应用程序中如何进行身份验证,即身份验证驱动程序。 - app/config/cache.php
如果应用程序利用缓存来加快响应时间,要在此配置该功能。 - app/config/compile.php
在此处可以指定一些额外类,去包含由‘artisan optimize’命令声称的编译文件。这些应该是被包括在基本上每个请求到应用程序中的类。 - app/config/database.php
包含数据库的相关配置信息,即默认数据库引擎和连接信息。 - app/config/mail.php
为电子邮件发件引擎的配置文件,即 SMTP 服务器,From:标头 - app/config/session.php
控制Laravel怎样管理用户sessions,即session driver, session lifetime。 - app/config/view.php
模板系统的杂项配置。 - app/controllers
包含用于提供基本的逻辑、 数据模型交互以及加载应用程序的视图文件的控制器类。 - app/database/migrations/
包含一些 PHP 类,允许 Laravel更新当前数据库的架构并同时保持所有版本的数据库的同步。迁移文件是使用Artisan工具生成的。 - app/database/seeds/
包含允许Artisan工具用关系数据来填充数据库表的 PHP 文件。 - app/lang/
PHP 文件,其中包含使应用程序易于本地化的字符串的数组。默认情况下目录包含英语语言的分页和表单验证的语言行。 - app/models/
模型是代表应用程序的信息(数据)和操作数据的规则的一些类。在大多数情况下,数据库中的每个表将对应应用中的一个模型。应用程序业务逻辑的大部分将集中在模型中。 - app/start/
包含与Artisan工具以及全球和本地上下文相关的自定义设置。 - app/storage/
该目录存储Laravel各种服务的临时文件,如session, cache, compiled view templates。这个目录在web服务器上必须是可以写入的。该目录由Laravel维护,我们可以不关心。 - app/tests/
该文件夹给你提供了一个方便的位置,用来做单元测试。如果你使用PHPUnit,你可以使用Artisan工具一次执行所有的测试。 - app/views/
该文件夹包含了控制器或者路由使用的HTML模版。请注意,这个文件夹下你只能放置模版文件。其他的静态资源文件如css, javascript和images文件应该放在/public文件夹下。 - app/routes.php
这是您的应用程序的路由文件,其中包含路由规则,告诉 Laravel 如何将传入的请求连接到路由处理的闭包函数、 控制器和操作。该文件还包含几个事件声明,包括错误页的,可以用于定义视图的composers。 - app/filters.php
此文件包含各种应用程序和路由筛选方法,用来改变您的应用程序的结果。Laravel 具有访问控制和 XSS 保护的一些预定义筛选器。
3.设置环境变量:
应用程序常常需要根据不同的运行环境设置不同的值。只需通过 .env 配置文件定义不同的环境变量值,即可控制环境,当你的应用程序收到请求时,这个文件所有的变量都会被加载到 PHP 超级全局变量 $_ENV 里。你可以使用辅助函数 env 来获取这些变量的值。
例如:
'debug' => env('APP_DEBUG', false),//第二个参数为获取不到的返回值
应用程序的当前环境是由 .env
文件中的 APP_ENV
变量所决定的。你可以通过 App
的environment
方法来获取该值:
作用去根据环境(local or production )加载不同的配置、调试日志
$environment = App::environment();
4.配置路由到控制器
app/controllers定义控制器继承Controllers编辑具体逻辑
在app/routes.php定义路由规则: 有3种写法:
Route::get('/hello', 'TestController@hello');//控制器@方法
Route::get('/hello',['uses'=>'TestController@hello']);
Route::any('/hello',['uses'=>"TestController@hello']);//多种请求支持的路由
5.新增视图(前后端分离时不适用)
在resources\views下新建控制器下文件夹包含blade.php文件并定义html页面
在控制器使用view('文件名/视图名')输出视图
并且模板文件可以带变量并在视图使用{${}}EL表达式输出
Laravel 使用了 Blade 布局 来让不同页面共用这些相同的功能。
.blade.php
扩展名会告知框架使用 [Blade 模板引擎] 渲染此视图。当然,你可以在 Laravel 使用纯 PHP 的模版。不过,Blade 提供了更方便的方式来编写干净、简洁的模板。特殊的 Blade 命令可以在网页中注入内容。
//Controller中
return view('Test/hello');
return view('Test/hello',['name'=>'BoB','age'=>18]);
6.新建模型
模型即在app下的php文件
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
//指定数据表
protected Stable=‘student‘;
//指定id
protected $primaryKey=‘id‘;
}
7.数据库操作:
Laravel中提供了DB facade(原始查找),查找构造器,Eloquent ORM三种操作方法
DB facade:
———————————————————————————————————————
通过DB::select DB::insert配合?占位符等运行sql原生查询
DB:transaction管理事务
DB::statement管理无返回的数据库操作
使用多个数据库连接的时候,可以使用DB门面的connection方法访问每个连接,连接名与参数在config/database.php中定义
查询构建器
———————————————————————————————————————
数据库查询构建器提供了一个方便的、平滑的接口来创建和运行数据库查询:
DB::table('表名')为给定表返回一个查询构建器,允许你在查询上链接更多约束条件并最终返回查询结果
具体的操作针对查询构建器:
first()获取一行,get获取符合条件的所有
比如使用where来限定条件
chunk方法处理结果集部分并设置闭包进行操作
lists方法限定列,等等,更多花样待探索, 但个人觉得, 比如chunk方法闭包处理, 在具体业务逻辑可能不太常用, 所以TP框架里没有类似的方法, 但laravel有, 虽然用起来复杂了,但是这也是性能的体现。
Eloquent ORM (重点):
注意:由于Eloquent模型本质上就是 查询构建器"),你可以在Eloquent查询中使用查询构建器的所有方法。
———————————————————————————————————————
Laravel所自带的Eloqulent ORM是一个非常优美简洁的ActiveRecord实现,用来实现数据库的操作他的每个数据的表都有对应的模型(model)用于数据表的交互。
Eloquent模型约定(表名、主键、操作的记录时间戳(可设置不要)):
use引入约定模型,然后使用 模型名::即可调用构建器所有方法,与Eloqulent自己的实现方法
Eloqulent比较关键的作用域功能,通过在model中定义的scope前缀的作用域方法(可带参)来实现对查询结果的筛选与操作
Eloqulent软删除:Eloquent还可以对模型进行“软删除”。当模型被软删除后,它们并没有真的从数据库删除,而是在模型上设置一个deleted_at属性并插入数据库,
要启用模型的软删除功能,可以使用模型上的Illuminate\Database\Eloquent\SoftDeletestrait并添加deleted_at列到$dates属性:
启用后,当调用模型的delete方法时,deleted_at列将被设置为当前日期和时间,并且,当查询一个使用软删除的模型时,被软删除的模型将会自动从查询结果中排除。