Laravel请求功能在路线上出错

时间:2019-01-28 08:59:53

标签: laravel laravel-5

我在DashboardController内部具有请求功能以使用自己的API。

public function index()
{
    $total_student = $this->student();
    $total_teacher = $this->teacher();
    return view('dashboard.index', compact(
        'total_student', 
        'total_teacher'
    ));
}

function student() 
{
    $request = Request::create('/api/student', 'GET');
    $response = app()->handle($request);
    return $response->getData()->total;
}

function teacher() 
{
    $request = Request::create('/api/teacher', 'GET');
    $response = app()->handle($request);
    return $response->getData()->total;
}

一切都很好,但是我意识到当我在视图上使用 {{route('dashboard')}} 时,显示的网址错误 http://localhost/web/dashboard 应该为 http://api.local/web/dashboard ,当我尝试使用 {{Request :: segment(2)}} 时,稍后会显示'teacher'我意识到它来自 DashboardController 上的教师功能,该功能对此有要求。当我删除该职能的老师和学生时, {{route('dashboard')}} 显示正常: http://api.local/web/dashboard

为什么控制器中的请求功能会影响路由?以及如何解决呢?谢谢。

1 个答案:

答案 0 :(得分:1)

1。)要更改应用程序网址,您可以在.env文件中执行此操作,方法是将APP_URLhttp://localhost更改为http://api.local

2。)使用teacher之后看到{{ Request::segment(2) }}的原因是因为第二个url "path"实际上是teacher。例如,如果您的网址为/api/test/hello,则第二段为test,第三段为hello,第一段为api,依此类推。