教你使用laravel vue30分钟搭建一个前端cms之api

laravel5.5 可以使用eloquent API Resources轻松构建api

https://laravel.com/docs/5.5/eloquent-resources

首先按照文档,我们新建article resource和article collection

php artisan make:resource ArticleResource

php artisan make:resource ArticleCollection

运行命令后会在Http目录下新建Resources目录,并新建ArticleResource.php和ArticleCollection.php

ArticleResource.php

public function toArray($request)
    {
        return [
            'id'    => $this->id,
            'title' => $this->title,
            'image' => $this->image,
            'keywords' => $this->keywords,
            'description' => $this->description,
            'content' => $this->content,
        ];
    }

可以根据api自主显示字段

ArticleCollection.php

public function toArray($request)
    {
        return [
            'data'    => $this->collection
        ];
    }

在Http的Controlles目录下新建Api目录,并建立ArticleApiController.php


在这里,我们需要用到帮助函数,在App目录下新建Helpers目录,并建立functions.php文件, 然后再composer.json中添加自动加载

在autoload节点下添加

"autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Helpers/functions.php"
        ]
    
    },

这样就可以自动加载了

我们需要在帮助文件中获取子栏目的id

我这里只考虑二级栏目

// 获取子栏目
function getChildrenIds($parent_id) {
    $children = App\Models\Category::select('id')->where('parent_id', $parent_id)->orderBy('order')->orderBy('id')->get();
    $children_arr = [];
    foreach($children  as $key => $val) {
        $children_arr[] = $val['id'];
    }
    return $children_arr;
}

帮助文件建立好后在回到ArticleApiController.php

常规的我们就只需要列表和详情就可以了

public function index($category = '') {
        $children = getChildrenIds($category);
        if (empty($children)) {
            return new ArticleCollection(Article::select(['id', 'category_id', 'title', 'image'])->where('category_id', $category)->paginate());
        } else {
            $category_id = $children;
            return new ArticleCollection(Article::select(['id', 'category_id', 'title', 'image'])->whereIn('category_id', $children)->paginate());
        }  
    }
public function show($id) {
        return new ArticleResource(Article::find($id));
    }

然后添加路由

Route::group([
    'prefix'        => 'api',
    'namespace'     => "Api",
], function (Router $router) {

    $router->get('articles/{category?}', 'ArticleApiController@index');
    $router->get('article/{id}', 'ArticleApiController@show');
    $router->get('products/{category?}', 'ProductApiController@index');
    $router->get('product/{id}', 'ProductApiController@show');
    $router->get('jobs/{category?}', 'JobApiController@index');
    $router->get('job/{id}', 'JobApiController@show');
    $router->get('pages/{category}', 'PageApiController@index');
    $router->get('categories', 'CategoryApiController@tree');
    $router->get('category/{id}', 'CategoryApiController@show');
    $router->get('children/{id}', 'CategoryApiController@children');
    $router->get('config', 'ConfigApiController@config');
    
});

其他的页面跟article一样

接下来就是建立前端页面,pc端直接在Controllers目录下新建IndexController.php,手机端在Controllers目录下建立Mobile目录,并建立IndexController.php,内容大同小异

 public function articles() {
       return view('article.index');
    }

    public function article() {
        
    }

在resource目录下的view目录下新建article目录和mobile/article目录,并建立index.blade.php和show.blade.php

输出内容随意可以,只有能显示出来就好,

为前端页面建立路由

Route::get('/', 'IndexController@index');
Route::get('articles/{category?}', 'IndexController@articles');
Route::get('article/{id}', 'IndexController@article');
Route::get('products/{category?}', 'IndexController@products');
Route::get('product/{id}', 'IndexController@product');
Route::get('jobs/{category?}', 'IndexController@jobs');
Route::get('job/{id}', 'IndexController@job');
Route::get('pages/{category?}', 'IndexController@page');

Route::group([
    'prefix'        => 'mobile',
    'namespace'     => "Mobile",
], function (Router $router) {

    $router->get('/', 'IndexController@index');
    $router->get('articles/{category?}', 'IndexController@articles');
    $router->get('article/{id}', 'IndexController@article');
    $router->get('products/{category?}', 'IndexController@products');
    $router->get('producte/{id}', 'IndexController@product');
    $router->get('jobs/{category?}', 'IndexController@jobs');
    $router->get('job/{id}', 'IndexController@job');
    $router->get('pages/{category?}', 'IndexController@page');
});
这样api和前端页面就好了,下一步我们将使用vue渲染前端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要搭建一个使用 Vue 框架的前端项目,需要以下步骤: 1. 安装 Node.js 环境,以使用 npm 包管理工具。 2. 使用 npm 安装 Vue CLI,这是一个命令行工具,可以帮助您快速搭建一个 Vue 项目。 3. 通过 Vue CLI 创建一个新项目,并选择所需的模板和插件。 4. 在项目中定义组件并使用 Vue 指令和语法实现前端逻辑。 5. 设置路由以实现单页面应用(SPA)的功能。 6. 编写单元测试以保证代码质量。 7. 运行 npm run build 命令,将项目打包为生产版本,以便发布到生产环境。 8. 配置 Webpack 以调整打包配置,例如使用代码分离或 tree shaking 等。 以上是使用 Vue 搭建前端框架的基本步骤,如果需要更详细的配置,可以参考 Vue 官方文档。 ### 回答2: 使用Vue搭建一个前端框架,并配置完成,主要分为以下几个步骤: 1. 安装Node.js和npm:首先需要在电脑上安装Node.js和npm,这是Vue的运行环境和包管理工具。 2. 全局安装Vue-cli:打开命令行工具,执行`npm install -g @vue/cli`命令,将Vue-cli安装在全局环境中。 3. 创建一个新的Vue项目:在命令行中执行`vue create my-project`命令,其中`my-project`是项目的名称,可以根据自己的需求修改。 4. 选择项目配置:在创建项目的过程中,会弹出一些选项供你选择。可以选择默认配置,也可以根据需要手动配置功能。 5. 安装依赖:项目创建完成后,进入项目目录,执行`npm install`命令,安装项目的依赖项。 6. 运行项目:执行`npm run serve`命令,在本地启动项目并运行开发服务器。在浏览器中输入对应的地址,即可预览项目。 7. 开始开发:打开项目所在的源代码目录,可以看到项目的基本结构。在src目录下的App.vue文件中,可以撰写页面的HTML结构,以及添加Vue的组件和逻辑代码。在assets目录下,可以存放项目所需的静态资源,如图片、样式表等。在components目录下,可以存放项目的各个组件。 8. 配置完成:根据项目要求,进行进一步的配置,如添加路由、状态管理、axios等,来满足项目的功能需求。 通过以上步骤,我们就能够使用Vue搭建一个前端框架,并根据需要进行配置,以便后续的开发工作。随着项目的不断迭代,我们可以根据实际需要修改和完善项目的配置。 ### 回答3: 使用Vue搭建一个前端框架并进行配置是一个相对简单的过程。首先,我们需要安装Vue的脚手架工具Vue CLI。可以使用npm或者yarn进行安装,具体命令如下: npm install -g @vue/cli 或 yarn global add @vue/cli 安装完成后,我们可以使用Vue CLI来创建一个新的项目。在命令行中输入以下命令: vue create my-project 这样就创建了一个名为my-project的项目。接下来,Vue CLI会提供一些配置选项,包括项目的类型、预设配置等。我们可以根据实际需求进行选择,也可以选择默认配置。等待Vue CLI自动创建项目并安装依赖。 创建项目完成后,我们就可以使用Vue进行开发了。项目的源代码位于src目录下,其中主要文件是App.vue和main.js。App.vue是项目的根组件,main.js是项目的入口文件。 在App.vue中,我们可以定义项目的整体布局和样式。可以使用Vue提供的组件、指令、数据绑定等特性来实现页面的交互逻辑。 在main.js中,我们可以配置一些全局的设置,例如路由、状态管理等。可以使用Vue Router来管理项目中的路由,可以使用Vuex来管理项目的状态。 除了以上两个文件,我们还可以创建其他的组件文件和模块文件来分别管理不同的业务逻辑。 完成了具体的开发工作后,我们可以使用以下命令来启动项目的开发服务器: npm run serve 或 yarn serve 这样就可以在浏览器中进行预览和调试。在开发过程中,我们可以热更新的方式修改代码,并实时查看页面的变化。 完成项目的开发后,我们可以使用以下命令来进行打包和部署: npm run build 或 yarn build 这样就可以将项目打包成静态文件,可以部署到服务器上供用户访问。 以上就是使用Vue搭建一个前端框架并配置完成的简要过程。当然,在实际项目中,还需要根据具体需求进行更加详细的配置和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值