首页 > 解决方案 > 如何在一条路线中使用多种方法?

问题描述

我想了解如何将更多方法与我的路线相关联。例如:

Route::get('/dashboard', 'DController@showX')->middleware('auth');

此外showX(),我还有另一个函数showY(),我想与路由关联,但是如果我重写两次它就不行,我该如何解决这个问题?

控制器:

public function showY(){
    $name=Auth::user()->name;
    return view('dashboard',['name'=>$name]);
}

public function showX(){
    $y= Y::all();
}

标签: phplaravel

解决方案


没有办法从那样的路线上做到这一点。你将如何处理两个返回值?

从控制器方法来看,也许你想使用showXin的值showY

我认为处理此问题的方法是在路线中使用一种方法:

Route::get('/dashboard', 'DController@show')->middleware('auth');

并让它触发您的其他两种方法:

public function show() {
    // decide what to return
    $xValue = $this->showX();
    return $this->showY($xValue);
}

protected function showY($y){
    $name=Auth::user()->name;
    return view('dashboard',['name' => $name, 'y' => $y]);
}

protected function showX(){
    $y= Y::all();
}

推荐阅读