新建服務
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 協議》,轉載必須註明作者和本文連結