如何在laravel中使用链接到同一页面的多个路由?

时间:2016-12-07 05:41:21

标签: laravel

我有2个控制器。一个管理类别和其他滑块。他们之间没有任何关系。它们位于不同部分的同一主页上。所以我想显示数据库中的类别和滑块值。

我试过

Route::get('/', ['uses'=>'SliderController@homepage','as'=>'homepage']);
Route::get('/', ['uses'=>'CategoryController@homepage','as'=>'categoryHomepage']);

如果我这样做,第二个就会覆盖第一个。

我是否有办法通过这两条路线,以便在主页上使用这两个值。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过dependency injection

1单行

Route::get('/home', ['uses'=>'SliderController@index','as'=>'homepage']);

2创建数据传递控制器

use View;

class SliderController extends Controller {

    private $repository;

    public function __construct(DataRepository $repository)
    {
        $this->repository = $repository;
    }

    public function index(DataRepository $repository)
    {
        return View::make('home.index')->with('data', $this-repository->getData());
    }

}

3 DataRepository类获取记录

class DataRepository {

    public getData()
    {
        $data = array();

        $data['category'] = Category::all();

        $data['slider'] = Slider::all();

        return $data;
    }

}

完成上述三个步骤后,DataRepository将自动将数据注入您的控制器。参考来自here