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

21 篇文章 0 订阅
10 篇文章 0 订阅

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

@[Laraval|后端|框架]


前言

按照书本的目录来看,目前我们已经进行到了第三章了,接下来就要进入微博项目的开发了,网站功能会包括
- 用户的注册登录
- 用户个人信息的更改
- 使用管理员权限删除用户
- 发布微博
- 关注用户
- 查看关注用户的微博动态

相信通过这个项目,可以很快了解laravel的工作流程,对日后阅读文档一定大有裨益

创建应用sample

与之前创建Laveral应用一样,我们创建一个名为sample的应用

第一步,登录并且启动Homestead

打开git,敲入命令行

cd ~/Homestead 
vagrant up
vagrant ssh

第二步,使用composor创建应用

虚拟机内敲入命令行

cd ~/Code
composer create-project laravel/laravel sample --prefer-dist "5.5.*"

这里有一点要讲,这个虚拟机着实不太友好,没有命令行提示符,虽然我想过想一般的linux一样设置它,但是一直没有试过,大家可以像我一样用pwd等毫无意义的命令试探一下是否结束任务

第三步,修改hosts文件

和之前一样,在最后加上192.168.10.10 sample.test记住要给管理员权限才能修改

第四步,增加站点

打开Homestead.yaml文件
设置sites

sites:
    - map: homestead.test
      to: /home/vagrant/Code/Laravel/public
    - map: sample.test 
      to: /home/vagrant/Code/sample/public

设置数据库

databases:
    - homestead
    - sample

重启虚拟机,每次修改完Homestead.yaml文件,一定要重启虚拟机并修改设置

cd ~/Homestead
vagrant provision
vagrant reload

第五步,设置.env文件

打开项目文件下的.env文件指定数据库名

.
.
DB_DATABASE=sample
.
.

此时该文件应该这样

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:gBdZw4zirNqoGF3xfri7uoFAazw5HHckzjWybgd3dCA=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sample
DB_USERNAME=homestead
DB_PASSWORD=secret

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

现在,就可以登录sample.test/查看到sample项目的主页了

使用git

和之前一样,在github上创建一个sample的resposion,纳入git的管理

$ cd ~/Code/sample
$ git init
$ git add -A
$ git commit -m "Initial commit"
$ git remote add origin git@github.com:<username>/sample.git
$ git push -u origin master

这里可能会出现一个问题,就是提交的时候告诉你
ssh: connect to host github.com port 22: Connection refused;
这个问题很常见,这里附上解决问题的博客地址链接

本来书上还有在heroku发布上线的步骤,如果有兴趣大家可以自行查看

创建最简单的静态页面

推荐使用git进行项目管理,在开始的时候创建分支,最后合二为一,防止在项目过程中出现差错,篇幅有限,不加赘述,大家自行查看git的用法

大部分的操作都可以在编辑器里进行,个人感觉Homestead能不用还是尽量不用吧,环境问题是真的麻烦

路由配置

当用户在查看一个网页时,一个完整的访问过程如下:
- 打开浏览器在地址栏输入 URL 并访问;
- 路由将 URL 请求映射到指定控制器上;
- 控制器收到请求,开始进行处理。如果视图需要动态数据进行渲染,则控制器会开始从模型中读取数据;
- 数据读取完毕,将数据传送给视图进行渲染;
- 视图渲染完成,在浏览器上呈现出完整页面

具体过程如下:
这里写图片描述

在 Laravel 中,使用路由来定义 URL 和 URL 的请求方式,再将该 URL 分配到相对应的控制器动作中进行处理。接下来要构建三个静态页面分别是主页、帮助页、关于页。
routes/web.php文件定义三个URL

<?php
Route::get('/', 'StaticPagesController@home');
Route::get('/help', 'StaticPagesController@help');
Route::get('/about', 'StaticPagesController@about');

为 get 方法传递了两个参数,第一个参数指明了 URL,第二个参数指明了处理该 URL 的控制器动作。get 表明这个路由将会响应 GET 请求,并将请求映射到指定的控制器动作上
四种HTTPS操作
- GET 常用于页面读取
- POST 常用于数据提交
- PATCH 常用于数据更新
- DELETE 常用于数据删除

静态页面控制器生成

方法一,在虚拟机内用命令
$ php artisan make:controller StaticPagesController
生成
方法二,当然是自己建文件啦,文件路径app/Http/Controllers/StaticPagesController.php
默认内容 :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class StaticPagesController extends Controller
{
    //
}

添加方法

在 StaticPagesController 类中,我们新定义了三个方法,这三个方法在接受到路由发过来的请求时,将会返回各自页面的名称,这三个方法名称与路由上的定义一一对应。现在:
- 访问 http://sample.test/ 你将看到有 “主页” 二字输出
- 访问 http://sample.test/help 页面,则会看到 “帮助页”
- 访问 http://sample.test/about 页面,则会看到 “关于页

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class StaticPagesController extends Controller
{
    public function home()
    {
        return view('static_pages/home');
    }

    public function help()
    {
        return view('static_pages/help');
    }

    public function about()
    {
        return view('static_pages/about');
    }
}

对应的要在resources/views/static_pages/home.blade.php中加入

<!DOCTYPE html>
<html>
<head>
  <title>Sample App</title>
</head>
<body>
  <h1>主页</h1>
</body>
</html>

至于另外两个也是相同

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值