从零开始学习laravel web(六)

忙了几天没时间写,其实关于laravel开发web没有什么难度的接下来我们继续开始我们的项目

前面一章讲到了登录功能下面我们开始登录之后的操作

登录成功之后我们就进入了后台管理页面的首页在左侧导航栏添加了如下列表需要我们完成的


同样的整个网页的布局我们分为几个模块 ,头部,左侧,底部 采用模板的方式首先我们做的第一件事情就是修改用户的信息我们登陆注册的时候只是简单的写了邮箱密码,但用户远远不止这些信息下面我们就来一 一实现,用户登陆成功之后我们把用户的信息存到了session里面,所有我们直接可以在session里面获取当前登录用户的信息

在头部导航我们获取到了信息,点击头像会有一个弹框,


点击profile 跳转至我们个人信息界面


在settings里面我们就可以填写自己信息了填写完之后提交会将我们的信息在左侧栏显示出来,在跳转过来之前,我们需要把用户的名称以及登录邮箱获取到并禁止掉,不能随意的修改我们的登录名,就像我们不能修改自己的身份证一样,修改了还怎么找的到啊(.......)

在这之前我们需要讲解下中间件

laravel中间件,你可以用最简单的理解,叫做控制权限,举个列子,你登录一个网站,你知道它的路由是 admin/home/index这是你的详细信息页面,但是我们要求你在没有登录的情况下是禁止访问这个页面的,必须登录成功之后你才能有后续的操作,否则不论你输入的路由是对还是错我们都将放回到登录页面,成功之后你才能有后续的操作,

1.创建中间件,

在这我们创建一个AdminLogin中间件

php artisan make:middleware AdminLogin

创建成功之后会在Http->Middleware文件下面创建一个adminloginphp文件
然后我们编辑它,我们的要求是登录成功之后才能有后续的操作,所有里面的代码很简单,我们验证下session里面有没有当前登录的用户如果有我们通过,没有我们返回再次登录就可以了
判断session里面是否存在用户不存在的话直接重定向到登录页面,存在的话就下一步next   顺便说下redirect是重定向
2.在门面中注册下中间件,修改
Middleware->kernel.php在最protected $routeMiddleware数组中添加
'admins' => \App\Http\Middleware\Adminlogin::class,
admins 是给中间件起个名字,后面是指向我们的中间件就这样就可以了,在一个项目中你可以创建多个中间件

完了之后我们就需要将路由改下了
编辑web.php路由文件
Route::group 是分组路由 
middleware 是我们刚才注册的中间件 prefix是我们的前缀,namespace是导入的意思,在这解释下这几个
中间件就不用说了,prefix是为了方面我们后面的操作,从上面我们可以看得出我们在每一个路由前面都加上了admin/...使用prefix我们在后面的路由定义中就可以省略了。但只限我们前缀为admin的,namespace 是我们控制器的文件夹,我们的控制器在Admin问价下面,我们也可以省略掉只要在分组路由中添加进去就可以,以后我们编写路由就可以向home路由那样简单了
所有的文件我们都修改了,我们登陆成功之后的首页是home这个页面
我们的路由是admin/home 现在我们推出直接在浏览器输入home这个路由就可以验证我们是否成功了
退出之后我们直接输入http://localhost/tourism/admin/home
他会直接重定向到登录页面说明我们在中间件里面的session判断生效了user为空我们是不能进入到下一步操作的只有输入了用户名和密码才能登录成功

好了我们现在可以修改个人信息了
我们需要在头部模板中存入session的值,这我将session中的username存到了头部当中
在头部找到位置

直接调用session里面的user就可以在页面使用
引入我们的头部和左侧栏这样我们整个home页面就全了就会出现home页面了,添加超链接

blade模板中图片,数据库查询出来的东西,都是一对{
  
  {}} 里面如果是图片就asset(),是链接就url(),这我们将session里面的user_id取出来传递到profile这个路由里面,在web.php里面定义路由,添加参数user_id

由于我们现在操作的还是user表前面的bolg中我们已经创建过了所以就不用创建了model 
定义了一个路由指向了LoginController控制器下面的profile方法
然后在LoginController控制器下创建本方法

通过session里面的user_id我们可以查询到数据库里面的信息其实我本人是不太喜欢这样写sql语句,比较喜欢写原生的sql但是没办法使用这个框架纪要遵守这个框架的规则
DB::table('user')->where('user_id',$user_id)->first();
这条sql语句等同于 select * from user where user_id = 1 后面的first是只去第一条,当然我们也不可能存在多条,
关于后面的数组分割截取现在不用管
完了之后我们将查询到的数据user使用compact返回到view文件夹admin.profile模板在这个里面包含了我们所有的个人信息由于可以无限制的修改个人信息,所以我们需要将查询到的数据反填充到页面当中去

完了之后我就能看到个人的信息在页面了,由于第一次进入个人中心,所以所有的信息都是空的只有我们的用户名和邮箱

我们需要达到的效果是在右侧填写完自己的信息在左侧给显示出来其实就是右侧添加,左侧查询

我们添加以上信息点击提交之后再左侧查询出来就会出现如下效果

返回到首页就会显示我们的信息,关于个人技能那就是上面对数据进行分割,截取的效果,下面是代码
在提交页面之前,我们需要在页面form表单中添加提交地址,就是我们的路由,这样我们在路由里面就有定义了一个update的路由带了一个id的参数,表单提交采用post的方式,{
  
  {csrf_firld()}}是token值,这也是laravel的好处,


在控制器里面继续写我们的update方法

这是方法在这我们用到了事物,当添加成功之后我们重定向当前页面就好了,在表单中我们使用了validateform表单验证,
大家可以去放上搜索layer这个jquery插件比较喜欢里面的表情包所以就用了,在这我们做其他的验证就是所有的项都必填,在表单中加上onsubimt = "return validateform()" 就可以刻 这样在表单提交之前就会走事件里面的方法,没填返回flase,所有的检测都通过的话返回true就可以提交成功了,好了我们这个功能就做好了

猜你喜欢

转载自blog.csdn.net/mzjmc123/article/details/76849882