php注册laravel,Laravel实现用户注册和登录

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就是你的应用目录名,你可以取一个你喜欢的名字。执行上面的命令之后,等一段时间(毕竟在国内,网速是个大坑),安装完以后你会得到这一堆目录:

67b183061977e0c9d3aec7460f68bde9.png

我们主要操作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和字体文件。成功后你将看到这个:

fbe0be3b57f627e72dd7561a86db8d52.png

注:这里使用的bower这个工具,它负责管理一些前端的包。

到这里,我们的前期工作已经准备好了。不过在进入下一步之前,我们得先确保我们的laravel/app/storage目录有相应的写入权限,所以回到laravel目录,如果你在安装完bower之后没动过命令行,可以直接通过:

复制代码 代码如下:

cd ../../

回到laravel目录,然后在执行:

复制代码 代码如下:

chmod -R 755 app/storage

这一步搞定之后我们就可以进入真正的开发阶段了。

3.配置数据库并建表:

在开始配置之前,我们要为我们的laravel应用创建一个数据库,我将它命名为laravel-start,

c842e480da22af918f4bfe3e6d750919.png

然后在编辑器中打开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();

});

}

上面的方法使用了laravel的Schema Builder类,上面这段代码使用up()方法的创建一个users表,这个表里有5个字段:id自增 ,username长度20以内 ,email长度100以内并且是唯一的 ,password长度64以内 ,remember_token是为了在登录的时候更方便实用,Laravel会自动将token值填充进来,但在最开始你必须设一个默认值,timestamp当前的时间戳。在这我们需要注意的一点是:最好在down()加上下面的代码,以防某天我们需要删除Users这个表。

复制代码 代码如下:

public function down()

{

Schema::drop('users');

}

上面的都做好以后,执行一下下面这一句神奇的命令:

复制代码 代码如下:

php artisan migrate

有图有真相:

3b0a3003c3db147224d5e15a6d437708.png

终于,我们的前奏搞完了,可以正式来鲁Laravel了。

4.启动服务来试试

直接在laravel目录执行:

复制代码 代码如下:

php artisan serve

打开浏览器,输入localhost:8000,回车,Bingo!

OK,先给自己三十秒的掌声时间,如果你顺利地走到了这一步的话。恭喜你,你已经进入Laravel的大门,更多惊喜我们再一一道来.....

5.创建公用视图

好了,我们现在开始了,首先在app/views/文件夹下创建一个layouts文件夹,再再这个文件夹下新建一个php文件,命名为main.blade.php,在这个文件里写上下面这些代码:

复制代码 代码如下:

发现Laravel 4之美

PS:layouts文件夹通常用来存放视图文件的功用部分,比如一些网页的头部和尾部,这里就是存放了头部部分

感觉main.blade.php的名字很奇怪?不用担心,Laravel的视图文件命名遵循filename.blade.php的规则,因为Laravel是用Blade这个模板引擎解析的,你不用深究,就照着上面的名字规则来命名视图文件就OK

为视图文件添加CSS样式:

复制代码 代码如下:

发现Laravel 4之美

{{HTML::style('packages/bower_components/bootstrap/dist/css/bootstrap.min.css') }}

{{ HTML::style('css/main.css')}}

没错,就是在原来的main.blade.php的基础上添加两行代码;然后我们来创建我们的main.css,这个主要是用来放我们自己定义的样式。在public文件夹下创建css文件夹,在css文件夹创建main.css文件,大功告成。

添加导航栏。在main.blade.php文件的

标签中加上以下代码:

复制代码 代码如下:

上面只是引用了一些简单的Bootstrap的class,也没什么难的,不用伤心。

到这里基本的功用部分就结束了,但是我们的追求从不会这么low,所以为了更好地与用户交互,我们希望在用户进行某个操作之后给出一些反馈,比如注册成功的时候说:少年,你已成功注册本站,恭喜恭喜。等,于是乎,我们再为main.blade.php添加一点点代码:

复制代码 代码如下:

@if(Session::has('message'))

{{ Session::get('message') }}

@endif

为了现实这些反馈信息给用户,我们得使用Session::get('message')方法,当然,我们得首先从逻辑上判断一下这个message是否存在,所以这里用了一个简单的if判断。

在blade引擎的视图中if 的使用格式是

复制代码 代码如下:

@if(conditions)

#code...

@endif

到这里就结束了么?NO,如果到这里就结束的话,其他的视图文件是怎么插入main.blade.php的

之间的呢?所以,不要忘了还有一个重要的事:{{ $content }},于是乎,上面的代码就变成了这样:

复制代码 代码如下:

@if(Session::has('message'))

{{ Session::get('message') }}

@endif

{{ $content }}

{{ $content }}在这里就是表示其他的视图文件内容,你可以在理解上将其他的视图当作一个字符串来理解,只不过这个字符串很长,而且恰好包含了HTML标签而已。下面你将体会到这种想法。

创建完我们的公用视图main.blade.php后,我们先来为main.css添加我们的CSS样式:

复制代码 代码如下:

body {

padding-top: 60px;

}

.form-signup, .form-signin {

margin: 0 auto;

}

因为我们在main.blade.php文件中使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值