如何在laravel控制器中一次执行多个方法

时间:2016-10-19 10:39:13

标签: php laravel laravel-5 laravel-5.2

我有一个仪表板页面,我想显示多个功能,如显示表单,显示数据库中的文章列表。

但是,由于路由只允许每个路由一次运行一个方法,我该如何实现呢?

我想做这样的事情

Route::get('/dashboard','Dashboard@index');
Route::get('/dashboard','Dashboard@showArticles');
Route::get('/dashboard','Dashboard@showUsersList');

我知道这不起作用,但替代方案是什么?因为我想在同一页上完成所有这些。

3 个答案:

答案 0 :(得分:1)

你必须像这样在单个方法中组合所有方法并将其传递给视图

public function getIndex()
{
  $users = User::all();
  $articles = Articles::all();
  return view('page.your_view')->with('users', $users)->with('articles', 'articles'); 
}

答案 1 :(得分:0)

Route::get('/dashboard/{?type}','Dashboard@index');

在控制器中

public function getIndex($type)
{
    if(isset($type) && !empty($type) && $type=='article'){ 
           return $this->article();
    }
  return view('page.index'); 
}
public function article(){
       ...YOUR CODE
}

答案 2 :(得分:0)

您可以使用

来实现
public function index()
{
  $users = User::all();
  $articles = Articles::all();
  return view('page.your_view', compact(['users' => $users, 'articles' => 'articles']); 
}