【问题标题】:How to use multiple routes that link to same page in laravel?如何在laravel中使用链接到同一页面的多条路由?
【发布时间】:2017-04-21 23:13:53
【问题描述】:

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

我试过了

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

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

有没有一种方法可以让我通过这两条路线,以便我可以在我的主页中使用这两个值。

谢谢!

【问题讨论】:

  • 也许您可以尝试在另一种方法中调用一种方法以在一个位置获取所有数据,然后相应地设置该方法的路由
  • @MehravishTemkar 你能提供一个参考站点吗,因为我不知道如何在控制器之间共享值。
  • 有点奇怪,你有完全相同的url 和相同的方法,但期望它的行为不同。是否有任何标准可以将请求传递给第一个控制器或第二个控制器?如果是这样,您可能希望使用 middleware 或仅按照 Mehravish Temkar 的建议在控制器级别进行多路复用。
  • @BagusTesa 为了简单起见,我保留了相同的方法名称。你能告诉我如何实现它或它已经实现它的网站。谢谢。

标签: laravel


【解决方案1】:

你试过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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2019-03-22
    • 1970-01-01
    • 2019-12-25
    • 2020-05-27
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多