laravel 5.5 《电商实战 》基础布局

我们需要为我们的项目构建一个基础的页面布局,布局文件统一存放在 resources/views/layouts 文件夹中,布局涉及的文件如下:

  • app.blade.php —— 主要布局文件,项目的所有页面都将继承于此页面;
  • _header.blade.php —— 布局的头部区域文件,负责顶部导航栏区块;
  • _footer.blade.php —— 布局的尾部区域文件,负责底部导航区

我们先创建主要布局文件:resources/views/layouts/app.blade.php

$ mkdir -p resources/views/layouts/
$ touch resources/views/layouts/app.blade.php

resources/views/layouts/app.blade.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>@yield(‘title‘, ‘Laravel Shop‘) - Laravel 电商教程</title>
    <!-- 样式 -->
    <link href="{{ mix(‘css/app.css‘) }}" rel="stylesheet">
</head>
<body>
    <div id="app" class="{{ route_class() }}-page">
        @include(‘layouts._header‘)
        <div class="container">
            @yield(‘content‘)
        </div>
        @include(‘layouts._footer‘)
    </div>
    <!-- JS 脚本 -->
    <script src="{{ mix(‘js/app.js‘) }}"></script>
</body>
</html>

route_class() 是我们自定义的辅助方法,我们还需要在 helpers.php 文件中添加此方法:

bootstrap/helpers.php

function route_class()
{
    return str_replace(‘.‘, ‘-‘, Route::currentRouteName());
}

此方法会将当前请求的路由名称转换为 CSS 类名称,作用是允许我们针对某个页面做页面样式定制。在后面的章节中会用到。

顶部导航

下面创建顶部导航模板:

$ touch resources/views/layouts/_header.blade.php

resources/views/layouts/_header.blade.php

<nav class="navbar navbar-default navbar-static-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
                <span class="sr-only">Toggle Navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="{{ url(‘/‘) }}">
                Laravel Shop
            </a>
        </div>
        <div class="collapse navbar-collapse" id="app-navbar-collapse">
            <ul class="nav navbar-nav">
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#">登录</a></li>
                <li><a href="#">注册</a></li>
            </ul>
        </div>
    </div>
</nav>

注册登录链接我们将在后面章节中修改。

底部导航

创建文件:

$ touch resources/views/layouts/_footer.blade.php

resources/views/layouts/_footer.blade.php

<footer class="footer">
    <div class="container">
        <p class="pull-left">
            由 <a href="http://weibo.com/u/1837553744?is_hot=1" target="_blank">Leo</a> 设计和编码 <span style="color: #e27575;font-size: 14px;">?</span>
        </p>

        <p class="pull-right"><a href="mailto:[email protected]">联系我们</a></p>
    </div>
</footer>

首页展示

1. 创建控制器

我们将使用控制器 PagesController 来处理所有自定义页面的逻辑,并使用 root() 方法来处理首页的展示。

执行以下命令新建控制器:

$ php artisan make:controller PagesController

将会生成 app/Http/Controllers/PagesController.php 这个文件,我们里面新增 root() 方法:

app/Http/Controllers/PagesController.php

.
.
.
    public function root()
    {
        return view(‘pages.root‘);
    }

2. 视图

控制器 root() 方法中加载了视图 pages.root,目前我们还没有此视图文件,前往创建:

$ mkdir -p resources/views/pages/
$ touch resources/views/pages/root.blade.php

resources/views/pages/root.blade.php

@extends(‘layouts.app‘)
@section(‘title‘, ‘首页‘)

@section(‘content‘)
  <h1>这里是首页</h1>
@stop

Laravel 自带了一个主页视图 welcome.blade.php,既然我们已经自定义了主页视图,即可将废弃的主页视图删除:

$ rm resources/views/welcome.blade.php

3. 绑定路由

接下来绑定下路由,将 web.php 里的内容替换掉:

routes/web.php

<?php

Route::get(‘/‘, ‘[email protected]‘)->name(‘root‘);

4. 运行 Laravel Mix

Laravel Mix 一款前端任务自动化管理工具,使用了工作流的模式对制定好的任务依次执行。Mix 提供了简洁流畅的 API,让你能够为你的 Laravel 应用定义 Webpack 编译任务。Mix 支持许多常见的 CSS 与 JavaScript 预处理器,通过简单的调用,你可以轻松地管理前端资源。

使用 Mix 很简单,首先你需要使用以下命令安装 npm 依赖即可。我们将使用 Yarn 来安装依赖,在这之前,因为国内的网络原因,我们还需为 Yarn 配置安装加速:

$ yarn config set registry https://registry.npm.taobao.org

使用 Yarn 安装依赖:

$ SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass yarn

在 yarn 命令前添加 SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass 的目的是告诉 yarn 到淘宝的镜像去下载 node-sass 二进制文件。

然后我们还需要修改一下 Mix 的配置文件:

webpack.mix.js

.
.
.
mix.js(‘resources/assets/js/app.js‘, ‘public/js‘)
   .sass(‘resources/assets/sass/app.scss‘, ‘public/css‘)
   .version();

在末尾加了一个 version(),使 Mix 每次生成的静态文件后面加上一个类似版本号的参数,避免浏览器缓存。

然后,运行以下命令即可:

$ npm run watch-poll

watch-poll 会在你的终端里持续运行,监控 resources 文件夹下的资源文件是否有发生改变。在 watch-poll 命令运行的情况下,一旦资源文件发生变化,Webpack 会自动重新编译。

注意:在后面的课程中,我们需要保证 npm run watch-poll 一直处在执行状态中。
Windows 用户如果遇到报错请参考 https://learnku.com/laravel/t/13277/in-learning-lessons-there-are-always-craters-recording-solutions

优化页首与页脚

接下来我们来调整一下样式,样式代码在 resources/assets/sass/app.scss,是用 SASS 编写的,最终会由 Mix 来编译成 CSS。

resources/assets/sass/app.scss

@import "variables";

// Bootstrap
@import "~bootstrap-sass/assets/stylesheets/bootstrap";

// 通用样式
body {
    font-family: Hiragino Sans GB, "Hiragino Sans GB", Helvetica, "Microsoft YaHei", Arial,sans-serif;
}

/* 顶部导航 */

.navbar-static-top {
    border-color: #e7e7e7;
    background-color: #fff;
    box-shadow: 0px 1px 11px 2px rgba(42, 42, 42, 0.1);
    border-top: 4px solid #00b5ad;
    margin-bottom: 40px;
    margin-top: 0px;
}

/* 底部样式 */
html {
    position: relative;
    min-height: 100% ;
}
body {
    margin-bottom: 60px;
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100% ;
    /* Set the fixed height of the footer here */
    height: 60px;
    background-color: #000;

    .container {
        padding-right: 15px;
        padding-left: 15px;

        p {
            margin: 19px 0;
            color: #c1c1c1;

            a {
                color: inherit;
            }
        }
    }
}

再到浏览器中刷新页面看看效果:

至此,我们完成了基础页面结构的构建。

Git 代码版本控制

在加入版本库之前我们先执行 git status 看看新增了哪些文件:

可以看到 Mix 还生成了 public/fonts 和 public/mix-manifest.json,这也是不需要加入版本库的,在 .gitignore 中添加这两项:

.gitignore

.
.
.
/public/fonts
/public/mix-manifest.json

再次执行 git status 看看我们的变更是否生效:

确认没有问题,现在让我们将这些文件加入到版本控制中:

$ git add -A
$ git commit -m "基础布局"

上面是一系列操作,主要就是将前端的页面框架布局出来。也没有什么特别难的,按着操作就好,不懂的先记下来,

原文地址:https://www.cnblogs.com/hqr0597/p/10658121.html

时间: 2024-11-08 05:24:34

laravel 5.5 《电商实战 》基础布局的相关文章

电商数据分析基础指标体系(8类)

目录 1.总体运营指标 2.网站流量指标 3.销售转化指标 4.客户价值指标 5.商品类指标 SKU SPU 6.市场营销活动指标 7.风控类指标 8.市场竞争指标 构建电商数据分析的基础指标体系,主要分为8类指标. 1.总体运营指标 总体运营指标:从流量.订单.总体销售业绩.整体指标进行把控,起码对运营的电商平台有大致了解,到底运营的怎么样?是亏了?还是赚了? 流量类指标 独立访客数(UV) 页面访客数(PV) 人均页面访问数 订单产生效率指标 总订单数量 访问到下单转化率 -- 漏斗模型 总

laravel 5.5 《电商实战 》安装应用

最近开始接触电商业务.公司打算采用lavarel做后端的开发,出于学习成本和时间的考虑.自己找到了一个不错的收费教程.这段时间会同步更新,分享自己的学习过程. 自己的开发环境,mac+nginx+mysql5.6+php7.1 注意,如果没有特别提示,分享中所有的命令执行都是在项目的根目录操作. 首先是版本的选择,因为要用于公司项目的开发,自己优先选择了LTS版本的laravel5.5 安装laravel很方便,直接输入指令 composer create-project laravel/lar

Vue+Koa2移动电商实战 (五)mock数据使用和布局

前面我们已经获取到了数据,这节我们就好把它用到我们的项目中来.这节课我们主要是使用flex布局和for循环是我们的type_bar展示出来. 关于flex布局的话如果还不是很了解的小伙伴儿可以查阅下阮一峰大神的博客(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html) 首页商品分类栏的布局 HTML: 我们采用v-for的方式将商品分类栏循环出来,并给了每个图片百分之九十的宽度,我这里因为第一张图片格式不对,多以单独添加了宽度的 <d

laravel 5.5 《电商实战 》辅助函数

Laravel 提供了很多 辅助函数,有时候我们也需要创建自己的辅助函数. 这里介绍了 tinker,一个laravel内置的php交互式控制台,方便调试php代码 php artisan tinker 我们把所有的『自定义辅助函数』存放于 bootstrap/helpers.php 文件中 首先 touch bootstrap/helpers.php 然后在 编辑 composer.json 文件 "autoload": { "classmap": [ "

Vue.js+Koa2移动电商实战3

移动端屏幕适配基础 制作webapp时一个很关键的问题就是适配各种机型不同屏幕的大小,让每种机型上的布局看起来都尽量一样,这让很多小伙伴很是头疼.在这里我介绍一下我平时工作中常用的适配方案,当然适配方案有很多种,所以你有更好的方法,也可以使用或者大家一起交流. 常见移动web布局适配方法 固定高度,宽度百分比:这种方法只适合简单要求不高的webApp,几乎达不到大型项目的要求,属于过时的方法. Media Query(媒体查询):现在比较主流的适配方案,比如我们常用的样式框架Bootstrap就

11-Flutter移动电商实战-首页_屏幕适配方案和制作

1.flutter_ScreenUtil插件简介 flutter_ScreenUtil屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理的布局. 插件会让你先设置一个UI稿的尺寸,他会根据这个尺寸,根据不同屏幕进行缩放,能满足大部分屏幕场景. github:https://github.com/OpenFlutter/flutter_ScreenUtil 这个轮子功能还不是很完善,但是也在一点点的进步,这也算是国内现在最好的Flutter屏幕适配插件了,又不足的地方你可以自己下载源码进行修改

Flutter移动电商实战 --(49)详细页_Stack制作底部工具栏

一直悬浮在最下面的 Stack层叠组件.里面用Row 可以横向布局 开始 stack如果想定位就要用position去定位. 修改return返回值的这个地方 大R刷新查看效果,可以看到固定的在左下角的测试的字样.一直固定在底部 做底部的固定栏widget 新建页面:在文件夹details_page/details_bottom.dart 在布局用三个InkWell 因为都是可以点击的 加入购物车的InkWell 立即购买,复制购物车的InkWell改改就可以了. 引用这个组件 效果展示 最终代

Vue.js+Koa2移动电商实战6

首页轮播图的制作 1.按需加载Swipe组件 按照惯例我们在使用Vant组件时需要把组件import进来.在/src/main.js下按需引入,代码如下: import { Button, Row, Col ,Search , Swipe , SwipeItem } from 'vant' Vue.use(Button).use(Row).use(Col).use(Search).use(Swipe).use(SwipeItem) 引入成功后,就可以写轮播图代码了. 2.下载这三张图片 我们作轮

03-Flutter移动电商实战-底部导航栏制作

1.cupertino_IOS风格介绍 在Flutter里是有两种内置风格的: material风格: Material Design 是由 Google 推出的全新设计语言,这种设计语言是为手机.平板电脑.台式机和其他平台提供一致,更广泛的外观和感觉.我喜欢称它为纸墨设计.Material Design 风格是一种非常有质感的设计风格,并会提供一些默认的交互动画. cupertino风格:即 IOS 风格组件,它重现了很多经典的有 IOS 特性的交互和界面风格,让适用于 IOS 的人感觉亲切和