Laravel身为最优雅的PHP框架,很多学习PHP的小伙伴造就对Laravel垂涎欲滴。今天就来实现你的愿望,让我们一起从零开始,利用Laravel实现Web应用最常见的注册和登录功能!所有的课程源码已放在Github上:laravel-start. Race Start !
首先我们来明确一下我们这个课程需要的东西:
Laravel 4.2
Bootstrap 3.3
Laravel就是我们关心的核心部分,Bootstrap用来快速设置一些前端的CSS样式。
1.安装Laravel
简单说明之后我们来进入下一步,安装Laravel,在这我们是通过Composer来安装,打开命令行终端,执行:
复制代码 代码如下:
cd Sites
Sites就是web应用的根目录,你可以根据需要换成你自己的根目录,然后再执行:
复制代码 代码如下:
composer create-project laravel/laravel laravel
laravel就是你的应用目录名,你可以取一个你喜欢的名字。执行上面的命令之后,等一段时间(毕竟在国内,网速是个大坑),安装完以后你会得到这一堆目录:
我们主要操作models和 controllers和 views这三个目录:这就是MVC的构成啊!
2.安装Bootstrap
然后再命令行执行:
复制代码 代码如下:
cd laravel/public/packages
这里的laravel与上面的应用目录对应,如果你在安装的时候用了其他的名字,请对应换上。来到packages这个目录后安装Bootstrap,直接在命令行执行:
复制代码 代码如下:
bower install bootstrap
这个比较快,然后等这个下载完之后你就会得到最新的稳定版Bootstrap。在目录packages目录下的 bower_components/bootstrap/dist/这里就包含了Bootstrap的css,js,fonts这三个我们在开发过程中经常用到的样式文件,js和字体文件。成功后你将看到这个:
注:这里使用的bower这个工具,它负责管理一些前端的包。
到这里,我们的前期工作已经准备好了。不过在进入下一步之前,我们得先确保我们的laravel/app/storage目录有相应的写入权限,所以回到laravel目录,如果你在安装完bower之后没动过命令行,可以直接通过:
复制代码 代码如下:
cd ../../
回到laravel目录,然后在执行:
复制代码 代码如下:
chmod -R 755 app/storage
这一步搞定之后我们就可以进入真正的开发阶段了。
3.配置数据库并建表:
在开始配置之前,我们要为我们的laravel应用创建一个数据库,我将它命名为laravel-start,
然后在编辑器中打开app/config/database.php文件,对相应的数据库配置项填入,如:
复制代码 代码如下:
'default' => 'mysql',
// 数据库连接
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'laravel-start',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
连接完数据库之后,还得创建一个Users表,你可以直接在数据库中创建Users表,也可以利用Laravel的artisan来创建,这里我们使用Laravel的artisan来建表,顺道了解一点点关于Laravel migrate的知识。执行下面语句:
php artisan migrate:make create-users-table
以上命令会创建一个migrate文件(文件位于app/database/migrations目录下),这个文件的名字就是create-users-table,然后我们可以通过编辑刚刚生成的migrate文件来创建Users表。
复制代码 代码如下:
public function up() {
Schema::create('users', function($table){
$table->increments('id');
$table->string('username', 20);
$table->string('email', 100)->unique();
$table->string('password', 64);
$table->string('remember_token',62)->default('default');
$table->timestamps();
});
}