laravel 5 中文文档:
1.http://laravel-china.org/docs/5.0
2.http://www.golaravel.com/laravel/docs/5.0/
默认条件
本文默认你已经有配置完善的 php + mysql 运行环境,懂得 php 网站运行的基础知识。跟随本教程走完一遍,你将会得到一个基础的包含登录的简单 blog 系统,并将学会如何使用一些强大的 laravel 插件和 composer 包(laravel 插件也是 composer 包)。
软件版本:php 5.4+,mysql 5.1+
本文不推荐完全不懂 php 与 mvc 编程的人学习。本文不是 “一步一步跟我做” 教程。本文需要你付出一定的心智去解决一些或大或小的隐藏任务,以达到真正理解 laravel 运行逻辑的目的。
1. 安装
许多人被拦在了学习laravel的第一步,安装。并不是因为安装教程有多复杂,而是因为【众所周知的原因】。在此我推荐一个composer全量中国镜像:http://pkg.phpcomposer.com/ 。推荐以 “修改 composer 的配置文件” 方式配置。
镜像配置完成后,切换到你想要放置该网站的目录下(如 c:\\\\wwwroot、/library/webserver/documents/、/var/www/html、/etc/nginx/html 等),运行命令:
|
1
|
composer create-project laravel/laravel learnlaravel5
|
然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel5 的文件夹。
然后将网站根目录配置为 learnlaravel5/public。
如果你不会配置,建议去学会配置,网上资料很多。如果自暴自弃,可以把 的第 29 行'url' => 'http://localhost', 配置成你的子目录地址,注意,要一直配置到 ***/learnlaravel5/public。
使用浏览器访问你配置的地址,将看到以下画面(我在本地配置的地址为 ):http://fuck.io:88
2. 体验 auth 系统并完成安装
—— 经过上面的过程,laravel 5 的安装成功了?
—— 没有o(╯□╰)o
查看路由文件 `learnlaravel5/app/http/routes.php` 的代码:
|
1
2
3
4
5
6
7
8
|
route::get('/', 'welcomecontroller@index');
route::get('home', 'homecontroller@index');
route::controllers([
'auth' => 'auth\\authcontroller',
'password' => 'auth\\passwordcontroller',
]);
|
跟随代码里的蛛丝马迹,让我们访问 http://fuck.io:88/home(请自行替换域名),结果竟然跳转到了登陆页?
没错,laravel 自带了开箱即用的 auth 系统,连页面都已经写好了。
让我们随意输入邮箱和密码,点击登录,你很可能得到以下画面(mac 或 linux 下):
为什么空白?用开发者工具查看,这个请求的状态码是 500,为什么?
因为 `learnlaravel5/storage` 目录没有 777 权限。
执行 shell 命令:
|
1
2
3
|
cd learnlaravel5
sudo chmod -r 777 storage
|
重新访问 http://fuck.io:88/home,随意输入邮箱和密码,如果你得到以下画面:
那么恭喜你~ laravel 5 安装成功!
不想配置镜像的同学,可以使用 laravel 界非常著名的 安正超 搞的安装神器:https://github.com/overtrue/latest-laravel
3. 数据库建立及迁移
laravel 5 把数据库配置的地方改到了 `learnlaravel5/.env`,打开这个文件,编辑下面四项,修改为正确的信息:
|
1
2
3
4
5
6
7
|
db_host=localhost
db_database=laravel5
db_username=root
db_password=password
|
推荐新建一个名为 laravel5 的数据库,为了学习方便,推荐使用 root 账户直接操作。
laravel 已经为我们准备好了 auth 部分的 migration,运行以下命令执行数据库迁移操作:
|
1
|
php artisan migrate
|
得到的结果如下:
如果你运行命令报错,请检查数据库连接设置。
至此,数据库迁移已完成,你可以打开 http://fuck.io:88/home欢快地尝试注册、登录啦。
4. 模型 models
接下来我们将接触laravel最为强大的部分,eloquent orm,真正提高生产力的地方,借用库克的一句话:鹅妹子英!
运行一下命令:
|
1
2
3
|
php artisan make:model article
php artisan make:model page
|
> laravel 4 时代,我们使用 generator 插件来新建 model。现在,laravel 5 已经把 generator 集成进了 artisan。
现在,artisan 帮我们在 `learnlaravel5/app/` 下创建了两个文件 `article.php` 和 `page.php`,这是两个 model 类,他们都继承了 laravel eloquent 提供的 model 类 `illuminate\\database\\eloquent\\model`,且都在 `\\app` 命名空间下。这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 model 类。
model 即为 mvc 中的 m,翻译为 模型,负责跟数据库交互。在 eloquent 中,数据库中每一张表对应着一个 model 类(当然也可以对应多个)。
如果你从其他框架转过来,可能对这里一笔带过的 model 部分很不适应,没办法,是因为 eloquent 实在太强大了啦,真的没什么好做的,继承一下 eloquent 类就能实现很多很多功能了。
如果你想深入地了解 eloquent,可以阅读系列文章:laravel 5框架学习之eloquent 关系
接下来进行 article 和 page 类对应的 articles 表和 pages表的数据库迁移,进入 `learnlaravel5/database/migrations` 文件夹。
在 ***_create_articles_table.php 中修改:
|
1
2
3
4
5
6
7
8
9
10
|
schema::create('articles', function(blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->string('slug')->nullable();
$table->text('body')->nullable();
$table->string('image')->nullable();
$table->integer('user_id');
$table->timestamps();
});
|
在 ***_create_pages_table.php 中修改:
|
1
2
3
4
5
6
7
8
9
|
schema::create('pages', function(blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->string('slug')->nullable();
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
|
然后执行命令:
|
1
|
php artisan migrate
|
成功以后, tables 表和 pages 表已经出现在了数据库里,去看看吧~
5. 数据库填充 seeder
在 `learnlaravel5/database/seeds/` 下新建 `pagetableseeder.php` 文件,内容如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
use illuminate\\database\\seeder;
use app\\page;
class pagetableseeder extends seeder {
public function run()
{
db::table('pages')->delete();
for ($i=0; $i < 10; $i++) {
page::create([
'title' => 'title '.$i,
'slug' => 'first-page',
'body' => 'body '.$i,
'user_id' => 1,
]);
}
}
}
|
然后修改同一级目录下的 `databaseseeder.php`中:
|
1
|
// $this->call('usertableseeder');
|
这一句为
|
1
|
$this->call('pagetableseeder');
|
然后运行命令进行数据填充:
|
1
|
composer dump-autoloadphp artisan db:seed
|
去看看 pages 表,是不是多了十行数据?
本教程示例代码见:https://github.com/johnlui/learn-laravel-5
大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码。
以上所述就是本文的全部内容了,希望能够对大家学习laravel5框架有所帮助。
相关文章
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-05-27 78
-
2025-05-26 46
-
2025-06-04 58
-
2025-05-25 77
-
2025-05-29 40






