Laravel,自定义网址,路由和控制器

时间:2018-04-04 13:27:08

标签: laravel url view controller routes

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

website/product/sd25eds1rtr2/

我使用$ product->代码获取产品代码。 在web.php我尝试创建route来调用controller来提供view

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

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

任何提示?

4 个答案:

答案 0 :(得分:1)

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

现在您可以捕获控制器功能中的代码

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

答案 1 :(得分:0)

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

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

在您的控制器中,您可以通过执行

来访问它
 public function productcode($productCode)
{
 // Do something here
}

在文档上可以阅读更多相关内容 https://laravel.com/docs/5.4/routing#route-parameters

答案 2 :(得分:0)

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

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

您可以访问" productCode'在控制器中:

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

结帐laravel documentation for route parameters

答案 3 :(得分:0)

  

路线

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

控制器

public function yourfunctionname($key){ }

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