Laravel——Web开发实战之路(五)

本文介绍了使用Laravel框架实现用户注册功能的具体步骤,包括路由配置、视图创建及数据库迁移等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Laravel——Web开发实战之路(五)

@[Laraval|后端|框架]


前言

搞定了静态页面和页面的美化工作,接下来要做的就是对用户的处理了,包括登录,注册等等

用户注册页面

  • 首先注册路由,这样访问http://sample.test/signup时,可以看到注册页面

在route/web.php加入

Route::get('/signup','UsersController@create')->name('signup');

将signup的请求交给用户控制器处理UsersController

  • 接下来生成用户控制器
    在虚拟机内执行
php artisan make::controller UsersController

在路由中注册页面的请求交给create方法执行
故在app/Http/Controllers/UsersController.php中加入

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class UsersController extends Controller
{
    public function create()
    {
        return view('users.create');
    }
}
  • 紧接着要构建注册页面的视图
    简单起见,就先这样写就好啦
    resources/views/users/create.blade.php
@extends('layouts.default')
@section('title','注册')
@section('content')
<h1>注册</h1>
@stop
  • 最后,在主页加上注册按钮即可
    Resources/views/static_pages/home.blade.php
@extends('layouts.default')

@section('content')
  <div class="jumbotron">
    <h1>Hello Laravel</h1>
    <p class="lead">
      你现在所看到的是 <a href="https://laravel-china.org/courses/laravel-essential-training-5.1">Laravel 入门教程</a> 的项目主页。
    </p>
    <p>
      一切,将从这里开始。
    </p>
    <p>
      <a class="btn btn-lg btn-success" href="{{ route('signup') }}" role="button">现在注册</a>
    </p>
  </div>  
@stop

数据库迁移

总的来说,数据库迁移就像git一样有用,它的优点在于
- 多人并行开发;
- 代码版本管理;
- 数据库版本控制 —— 如:回滚/重置/更新等;
- 兼容多种数据库系统;
- 部署方便。

默认迁移文件

在路径database/migrations/下,
内容有

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

CreateUsersTable类继承自Migration基类
- up方法当进行迁移时会调用
- down方法当进行回滚时调用

在up方法中,使用Schema类的create方法创建了表,在down方法中,当users表存在时,就删除

查看数据库表

虚拟机内数据库连接方式是
- Host: 127.0.0.1
- Port: 33060
- User: homestead
- Pass: secret
这是之前设置在Homestead.yaml文件中的
windows下链接请使用HeidiSQL工具,mac党使用SequelPro工具

第一步,要进行数据库迁移,也就是说在虚拟机内建立数据库
只需要在虚拟机内执行迁移命令即可

$ php artisan migrate

可以用工具查看到表为
这里写图片描述

migrations 表有两个字段:
migration 是迁移文件的名称;
batch 是用来记录迁移对应的批次,以此来实现 回滚迁移 的功能。
如果需要回滚,只需要执行

php artisan migrate

即可

模型文件

app/User.php下,我们可以看到laravel自动生成的模型文件

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

定义要交互的数据table

protected $table='users';

代码块

 protected $fillable = [
        'name', 'email', 'password',
    ];

告诉我们,只有包含在属性中的字段才可以进行更新
敏感信息则用 hidden隐藏

命名空间

为了更好地演示MVC模式开发,统一在app/Models下建立模型文件,并且将User.php放入路径下
注意
由于更改了User.php的路径,所以命名空间什么也要改
- app/Models/User.php里的namespace App改成namespace App\Models
- 全局范围内将App\User 替换为 App\Models\User

用户对象的创建

理论上来说,用命令行操作比较好
首先进入tinker

php artisan tinker

执行命令创建对象

App\Models\User::create(['name'=> 'Aufree', 'email'=>'aufree@yousails.com','password'=>bcrypt('password')])

但是windows下的Homestead太不友好啦,个人觉得能不用命令行就不用,所以既然已经有了连接数据库的工具了,那么当然可以用工具修改啦

对象的查询

引入命名空间use App\Models\User
自己尝试命令

ser::find(1)
User::findOrFail(5)
User::first()
User::all()

对象的更新

同上,依旧自己尝试吧

$user = User::first()
$user->name = 'Summer'
User::first()
$user->save()
$user->update(['name'=>'Aufree'])

最后

一定要记得用git进行版本控制哦

课程目录: 章节1:课前准备 课时1Laravel版本的选择05:46 课时2本地开发环境的搭建07:50 课时3本地域名解析08:40 课时4git的简单介绍08:53 课时5composer的安装和使用11:12 课时6课程源码同步08:14 课时7PHPStorm插件的安装05:44 课时8项目开发流程介绍03:19 章节2aravel基础入门 课时9Laravel的安装以及安装过程中常见问题24:40 课时10Laravel入门介绍08:46 课时11Laravel基本路由27:51 课时12Laravel路由参数32:25 课时13Laravel中间件22:43 章节3:项目模块设计和模板的引入 课时14模板的分离与blade布局模板03:12 课时15功能模块设计03:59 课时16后台控制器的创建与访问20:05 课时17后台模板的引入26:27 课时18前后台模板的获取34:33 章节4:后台-系统配置模板的开发 课时19创建站点配置页面23:57 课时20数据库连接和数据表的创建24:05 课时21网站配置信息写入数据表37:24 课时22完善网站配置(新手常见问题处理)18:59 课时23数据验证与数据闪存27:58 课时24完善系统配置功能27:59 课时25使用pjax提升后用户操作体验17:25 章节5:后台-新闻模块开发 课时26数据迁移与数据填充31:27 课时27新闻列表显示与新增36:33 课时28Laravel中的文件上传23:23 课时29富文本编辑器Neditor的使用28:56 课时30pjax下编辑器的异常处理10:07 课时31Laravel表单请求验证17:35 课时32新闻的编辑与删除34:48 课时33旧图片的处理和自定义公共函数16:10 章节6:无限级分类 课时34无限级分类原理33:06 课时35无限级分类的添加33:03 课时36无限级分类的删除与编辑20:21 课时37静态方法的正确使用07:56 课时38Laravel内置验证规则和自定义验证规则28:58 课时39提示信息的本地化11:34 章节7:后台-产品管理模块开发 课时40产品管理(1)27:23 课时41产品管理(2)-自定义验证规则25:42 课时42产品添加扩展内容14:41 课时43Laravel关联模型的使用21:33 课时44产品的编辑19:39 课时45产品编辑的完善07:13 课时46产品的批量删除与单条删除35:50 课时47使用Laravel模型事件完善产品删除功能18:37 章节8:后台-案例模块的开发 课时48数据表的创建和列表显示21:00 课时49案例的添加16:16 课时50案例的编辑与删除23:50 章节9:后台-单页模块开发 课时51单页模块(1)公司简介的处理32:11 课时52单页模块(2)招贤纳士功能实现35:00 课时53单页模块(3)发展历程的实现29:57 章节10:后台-轮播图模块开发 课时54轮播图模块表的设计与数据迁移09:19 课时55轮播图管理功能(1)20:59 课时56轮播图管理功能(2)32:43 课时57轮播图管理功能(3)自定义验证规则14:06 课时58问题处理21:57 课时59ajax实现异步排序19:42 课时60Laravel中访问器的使用11:42 课时61关于删除功能的扩展27:26 章节11:后台-友情连接模块开发 课时62友情连接模块开发28:07 章节12:后台权限认证 课时63管理员表的设计与创建15:46 课时64管理员登录验证的实现(1)25:11 课时65管理员登录验证的实现(2)23:59 章节13:前台 课时66前台首页的引入与布局模板21:01 课时67前台首页的数据调用(1)29:36 课时68前台首页的数据调用(2)16:51 课时69前台产品展示(1)23:35 课时70前台产品展示(2)15:31 课时71前台新闻数据调用17:50 课时72 Laravel自定义分页样式28:44 课时73前台新闻详情页04:33 课时74 前台案例展示11:37 课时75关于我们数据展示23:45 章节14:SEO优化入门 课时76常用的搜索引擎指令16:40 课时77SEO优化-标签优化11:46 课时78SEO优化-关键词优化08:14 课时79SEO优化-URL-robots优化07:43 课时80nofollow优化和图片优化16:43 课时81网站地图09:01 课时82链接优化与内容优化09:12 课时83百度推送(1)14:26 课时84百度推送(2)自定义类库(单例模式)27:28 课时85百度推送(3)21:13 课时86Laravel中Session的用法(百度推送优化)17:01 课时87蜘蛛来访36:09 课时88内容补充(纠错)05:18 章节15:网站安全 课时89网站安全介绍08:15 课时90上传漏洞介绍12:17 课时91常见攻击类型的防范方法06:15 课时92Laravel实现登录次数的限制19:20 课时93Laravel验证码的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值