http://pkg.phpcomposer.com/ 。推荐“修改 composer 的配置文件”方式配置。
镜像配置完成后,切换到你想要放置该网站的目录下,运行命令:
composer create-project laravel/laravel learnlaravel
然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel
的文件夹,这时候如果你通过浏览器访问 learnlaravel/public/
目录,基本都会显示 Error in exception handler.
,这是因为 learnlaravel/app/storage
目录没有777权限,设置好权限即可看见页面如下图:
恭喜你~Laravel安装成功!
不想配置镜像的同学,可以使用 Laravel 界非常著名的超超搞得安装神器:https://github.com/overtrue/latest-laravel
我们使用著名的Sentry插件来构建登录等权限验证系统。
打开 ./composer.json
,变更为:
"require": {
"laravel/framework": "4.2.*",
"cartalyst/sentry": "2.1.4"
},
然后,在项目根目录下运行命令
composer update
然后稍等一会儿,它会提示 cartalyst/sentry 2.1.4
安装完成。
同理,我们将安装一个开发用的非常强大的插件,way/generators
,这是它在composer库中的名字。在 composer.json
中增加:
"require-dev": {
"way/generators": "~2.0"
},
放在require
的下面。
运行 composer update
,之后在./app/config/app.php
中增加配置:
'Way\Generators\GeneratorsServiceProvider'
安装完成过,在命令行中运行 php artisan
,就可以看到这个插件带来的许多新的功能。
有人会问,为什么用了国内镜像还是如此之慢?其实composer在update的时候最慢的地方并不是下载,而是下载之前的依赖关系解析,由于Laravel依赖的composer包非常之多,PHP脚本的执行速度又比较慢,所以每次update等个两三分钟很正常,习惯就好。
数据库配置文件位于 ./app/config/database.php
,我们需要把connections
中的mysql
项改成我们需要的配置。下面是我的配置:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'laravel',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'l4_',
),
prefix
为表前缀,这个Laravel会帮我们自动维护,大胆写上不用担心。
这时候你需要去数据库建立此数据库,然后在命令行中输入:
php artisan migrate --package=cartalyst/sentry
执行完成后,你的数据库里就有了5张表,这是sentry自己建立的。sentry在Laravel4下的配置详情见 https://cartalyst.com/manual/sentry#laravel-4 ,我大致说一下:
在./app/config/app.php
中“合适位置”处分别增加以下两行:
'Cartalyst\Sentry\SentryServiceProvider',
'Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry',
权限系统的数据库配置到此为止。
我们的简单blog系统将会有两种元素,Article
和Page
,下面我们将创建articles
和pages
数据表,命令行运行:
php artisan migrate:make create_articles_table --create=articles
php artisan migrate:make create_pages_table --create=pages
这时候,去到 ./app/database/migrations
,将会看到多出了两个文件,这就是数据库迁移文件,过一会我们将操作artisan将这两个文件描述的两张表变成数据库中真实的两张表,放心,一切都是自动的。
下面,在***_create_articles_table.php
中修改:
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
中修改:
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();
});
下面,就是见证奇迹的时刻,在命令行中运行:
php artisan migrate
这时候数据库中的articles
表和pages
表就建立完成了。
接下来我们将接触Laravel最为强大的部分,Eloquent ORM
,真正提高生产力的地方,借用库克的话说一句,鹅妹子英!
我们在命令行运行下列语句以创建两个model:
php artisan generate:model article
php artisan generate:model page
这时候,在./app/models/
下就出现了两个model文件。这两个类继承了Laravel提供的核心类 \Eloquent
。
分别运行下列命令:
php artisan generate:seed page
php artisan generate:seed article
这时,在 ./app/database/seeds/
下就出现了两个新的文件,这就是我们的数据库填充文件。Laravel提供自动数据库填充,十分方便。
generator默认使用Faker\Factory
作为随机数据生成器,所以我们需要安装这个composer包,地址是 https://packagist.org/packages/fzaninotto/faker ,跟generator一起安装在 require-dev
中即可。具体安装请自行完成,可以参考Sentry
和Generator
,这是第一次练习。
接下来,分别更改这两个文件:
Article::create([
'title' => $faker->sentence($nbWords = 6),
'slug' => 'first-post',
'body' => $faker->paragraph($nbSentences = 5),
'user_id' => 1,
]);
Page::create([
'title' => $faker->sentence($nbWords = 6),
'slug' => 'first-page',
'body' => $faker->paragraph($nbSentences = 5),
'user_id' => 1,
]);
然后,我们需要在 DatabaseSeeder.php
中增加两行,让Laravel在seed的时候会带上我们新增的这两个seed文件。
$this->call('ArticleTableSeeder');
$this->call('PageTableSeeder');
下面就要真正的把数据填充进数据库了:
php artisan db:seed
操作完成以后去数据库看看,数据已经填充进去了,article和page各10行。
接下来做什么?Laravel 4 系列入门教程(二)
原文地址:http://lvwenhan.com/laravel/398.html