我有一个仪表板页面,我想显示多个功能,如显示表单,显示数据库中的文章列表。
但是,由于路由只允许每个路由一次运行一个方法,我该如何实现呢?
我想做这样的事情
Route::get('/dashboard','Dashboard@index');
Route::get('/dashboard','Dashboard@showArticles');
Route::get('/dashboard','Dashboard@showUsersList');
我知道这不起作用,但替代方案是什么?因为我想在同一页上完成所有这些。
答案 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']);
}