学习Laravel-5(一)

开始学习
1. 安装
许多人被拦在了学习 Laravel 的第一步:安装。并非由于安装有多复杂,而是由于【众所周知的缘由】。在此我推荐一个 composer 全量中国镜像:http://pkg.phpcomposer.com/ 。启用 Composer 镜像服务做为本教程的第一项小做业请自行完成哦。

镜像配置完成后,在终端(Terminal 或 CMD)里切换到你想要放置该网站的目录下,运行命令:learnlaravel5项目文件名称
    
    composer create-project laravel/laravel learnlaravel5 5.2.31
php

中间可能会遇到函数禁用问题
        The Process class relies on proc_open, which is not available on your PHP installation.

解决方法
    在php.ini里面去掉 proc_open

2. 运行
建立站点,定位到learnlaravel5/public
html

(配置站点以及添加站点到本地服务就很少讲了)
配置完成后,learnlaravel5/storage添加可写权限nginx

打开站点:laravel

这时候你可能要问了:为何页面是一片空白?请使用开发者工具查看网络请求,只要是 200 状态就说明运行成功了,空白是由于这个页面引用了 Google Fontsweb

3. 体验 Auth 系统

Laravel 利用 PHP5.4 的新特性 trait 内置了很是完善好用的简单用户登陆注册功能,适合一些不须要复杂用户权限管理的系统,例如公司内部用的简单管理系统。shell

激活这个功能很是容易,运行如下命令:数据库

php artisan make:auth

生成很容易,一条命令,但问题是访问时却看不到登陆验证页面??404?vim


 

                                                                                                        404 某某某缓存

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------网络

                             nginx



看了下官方文档,原来是URL重写的问题,修改一下 nginx的配置文件vim www.learnlaravel5.hk.conf:

location / {
 try_files $uri $uri/ /index.php?$query_string; }

 

好,欣赏一下一条命令生成的 auth吧:

4. 链接数据库

接下来咱们要链接数据库了,请自行准备好 MySQL 服务哦。

a. 修改配置

不出意外的话,learnlaravel5 目录下已经有了一个 .env 文件,若是没有,能够复制一份 .env.example 文件重命名成 .env,修改下面几行的值:

php artisan migrate

咱们获得了以下结果:

注册用户

注册成功,页面显示

 

 

 

 

登陆成功后

 

c. migration 是啥?

打开 learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php 文件,你确定能一眼看出它的做用:用 PHP 描述数据库构造,而且使用命令行一次性部署全部数据库结构。

5. 使用 Laravel 的“葵花宝典”:Eloquent

Eloquent 是 Laravel 的 ORM,是 Laravel 系统中最强大的地方,没有之一。当初 Laravel 做者在开发初版的时候花了整整三分之一的时间才搞出来 Eloquent。固然,“欲练此功,必先自宫”,Eloquent 也是 Laravel 中最慢的地方,迄今没法解决。(路由、自动载入、配置分散、视图引起的性能问题都经过缓存几乎完全解决了)

a. Eloquent 是什么

Eloquent 是 Laravel 内置的 ORM 系统,咱们的 Model 类将继承自 Eloquent 提供的 Model 类,而后,就天生具有了数十个异常强大的函数,今后想干啥事儿都是一行代码就搞定。

b. 怎么用?

咱们使用 Artisan 工具新建 Model 类及其附属的 Migration 和 Seeder(数据填充)类。

运行如下命令:

  php artisan make:model Article

去看看你的 app 目录,下面是否是多了一个 Article.php 文件?那就是 Artisan 帮咱们生成的 Model 文件:

  namespace App;  use Illuminate\Database\Eloquent\Model;  class Article extends Model {  // }

如此简洁有力的代码,隐藏了背后极高的难度和巨大的复杂度,让咱们闭上眼睛,静静地感觉 Laravel 的优雅吧 (~ ̄▽ ̄)~

6. 使用 Migration 和 Seeder

接下来咱们生成对应 Article 这个 Model 的 Migration 和 Seeder。

a. 使用 artisan 生成 Migration

在 learnlaravel5 目录下运行命令:

成功以后打开 learnlaravel5/database/migrations,你会发现有一个名为 2*****_create_article_table 的文件被建立了。咱们修改他的 up 函数为:

public function up() {  Schema::create('articles', function(Blueprint $table)  {  $table->increments('id');  $table->string('title');  $table->text('body')->nullable();  $table->integer('user_id');  $table->timestamps();  }); }

这几行代码描述的是 Article 对应的数据库中那张表的结构。
Laravel 默认 Model 对应的表名是这个英文单词的复数形式,在这里,就是 articles。
接下来让咱们把 PHP 代码变成真实的 MySQL 中的数据表,运行命令:
  php artisan migrate

 

b. 使用 artisan 生成 Seeder

Seeder 是咱们接触到的一个新概念,字面意思为播种机。Seeder 解决的是咱们在开发 web 应用的时候,须要手动向数据库中填入假数据的繁琐低效问题。

运行如下命令建立 Seeder 文件:

php artisan make:seeder ArticleSeeder

咱们会发现 learnlaravel5/database/seeds 里多了一个文件 ArticleSeeder.php,修改此文件中的 run 函数为:

public function run() {  DB::table('articles')->delete();   for ($i=0; $i < 10; $i++) {  \App\Article::create([  'title' => 'Title '.$i,  'body' => 'Body '.$i,  'user_id' => 1,  ]);  } }
上面代码中的  为命名空间绝对引用。\App\Article

接下来咱们把 ArticleSeeder 注册到系统内。修改 learnlaravel5/database/seeds/DatabaseSeeder.php 中的 run 函数为:

ArticleSeeder::class); }

因为 database 目录没有像 app 目录那样被 composer 注册为 psr-4 自动加载,采用的是 psr-0 classmap 方式,因此咱们还须要运行如下命令把 ArticleSeeder.php 加入自动加载系统,避免找不到类的错误:

composer dump-autoload

而后执行 seed:

php artisan db:seed

你应该获得以下结果:

这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据:

相关文章
相关标签/搜索