【问题标题】:Laravel, custom url, route and controllerLaravel,自定义 url,路由和控制器
【发布时间】:2018-09-14 02:10:10
【问题描述】:

这是一个尝试做的事情。 我需要根据存储在数据库中的唯一代码(产品代码 - 示例:sd25eds1rtr2)生成一个 url。 URL 如下所示:

website/product/sd25eds1rtr2/

我通过 $product->code 获得产品代码。 在web.php 中,我尝试创建一个route,它调用一个controller,它给出一个view

Route::get('/product', 'HomeController@productcode')

我不知道创建 url 和控制器的正确方法是什么。我尝试了很多方法,但仍然没有得到预期的页面。

任何提示?

【问题讨论】:

标签: laravel url view controller routes


【解决方案1】:

我不知道你为什么要做这样的事情而你根本不使用通配符Route::get('/product/{code}', 'HomeController@somefunction');

现在您可以在控制器函数中捕获代码

public function somefunction($code)
{
    $product = Product::where('code', $code)->first();
}

【讨论】:

    【解决方案2】:

    要将参数传递给控制器​​,您需要在路由中添加一个变量

    Route::get('/product/{productCode}', 'HomeController@productcode');
    

    在你的控制器中,你可以通过这样做来访问它

     public function productcode($productCode)
    {
     // Do something here
    }
    

    更多信息可以在文档中阅读 https://laravel.com/docs/5.4/routing#route-parameters

    【讨论】:

      【解决方案3】:

      如果您需要在 url 中传递变量数据并在控制器中访问它,那么您可以这样做

      Route::get('/product/{productCode}', 'HomeController@productcode');
      

      您可以在控制器中访问“productCode”,例如:

      public function productcode($productCode)
      {
          /* your method */
      }
      

      结帐laravel documentation for route parameters

      【讨论】:

        【解决方案4】:

        路线

         Route::match(['get','post'],'/yoururl/{key}', 'controllername@functionname');
        

        控制器

        public function yourfunctionname($key){ }
        

        这是访问您的键值的最简单方法

        【讨论】:

          猜你喜欢
          • 2015-10-12
          • 2013-09-30
          • 2017-02-22
          • 1970-01-01
          • 2011-11-24
          • 2023-03-27
          • 2017-03-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多