Laravel_blade 调用其他路由_获取数据;

新建服务

App\Services;
class ApiService
{

    //要访问的路由url
    public function get($url)
    {
       $request = Request::create($url, 'GET');          //创建request 
       $res = app('router')->dispatchToRoute($request);  //执行laravel路由
       $res = json_decode($res);                         
       if($res->setStatusCode != 200)
       echo "注意:状态码不等于200";          

       return $res->getContent();  //此时是Response 详细方法Symfony\Component\HttpFoundation\Response
   }

}

注册全局view变量

App\Providers\AppServiceProvider.php
public function register()
{
    $api = new App\Services\ApiService();
     view('api',$api);
}

在blade模板使用

创建test路由 和 banner路由 (这个不用说怎么做吧)
{{ $api->get('test') }}

@foreach($api->get('banner') as $banner)

@endforeach

原因

api已经写好,要用blade来做web;

总不能我写控制器传参到view吧(以后改的话要改两个地方);

ajax虽然可以获取数据,但是麻烦;
所以想到这种方法来获取控制器的数据;

我的web.php

<?php

//路由注册 不做任何数据处理 只返回blade
v('/');
v('/user');
v('/service');
v('/type');
function v($path)
{
    Route::get($path,function () use ($path){
        return view(viewPath($path));
    });
}

function viewPath($path)
{
    if($path == '/')
    return 'index';
    return $path;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
专心学习不瞎搞
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
89
粉丝
108
喜欢
481
收藏
724
排名:108
访问:8.8 万
私信
所有博文
社区赞助商