【问题标题】:Laravel > route, filter URL against databaseLaravel > 路由,根据数据库过滤 URL
【发布时间】:2015-10-29 15:41:56
【问题描述】:

我正在尝试使用 Laravel 5 框架构建我们网站的新版本。

问题是,我们现在有以下站点结构(可能不会更改):

  • domain.com/[产品名称]
  • domain.com/[categoryname]
  • domain.com/some-static-page1
  • domain.com/some-static-page2
  • ....

在我们的数据库中,我们有一个不同产品名称和不同类别的列表。

我想将 [productname] 路由到 productController 并将 [categoryname] 路由到 categoryController。但是因此,我需要在每个请求中查询我们的数据库,以查看 URL 参数是产品还是类别。

有什么能让我走上正确方向的想法吗?

提前致谢!

【问题讨论】:

    标签: laravel routes laravel-5


    【解决方案1】:

    我认为这是最好的方法:

    路线:

    Route::get('/cat={name}', 'CatagoryController@cataFind');
    Route::get('/prod={name}', 'ProductController@prodfind');
    

    控制器:

    public function cataFind($name){
     //get all the rows with that cata
     $catas = Product::where('cata', $name)->get();
     return view('cata')->with('catas', $catas);
    }
    
    public function prodFind($name){
     //get all the rows with that prod name
     $prod = Product::where('name', $name)->get();
     return view('prod')->with('prod', $prod);
    }
    

    如果您需要对正在发生的事情有任何解释,请发表评论,我会更新帖子。但这是我应该考虑的你应该走的路!

    【讨论】:

    • 感谢您的意见,阿什利!不幸的是,我不能让它像那样工作。
    • 感谢您的意见,阿什利!不幸的是,我不能让它像那样工作。它没有捕获任何这样的路线:(例如uri:domain.com/books不会触发类别或产品控制器中的搜索。它应该首先尝试在类别mysql表中查询“book”使用 CatagoryController。如果没有返回任何记录,它应该查询 products mysql 表以找到匹配项。如果没有找到匹配项,它必须转到 routes.php 文件中找到的下一个路由。
    猜你喜欢
    • 2013-06-20
    • 2016-07-28
    • 1970-01-01
    • 2019-09-30
    • 2018-04-17
    • 2018-09-11
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    相关资源
    最近更新 更多