【发布时间】:2015-01-06 19:07:56
【问题描述】:
如何将硬编码变量传递给控制器?
我的路线是:
Route::group(array('prefix' => $locale), function() {
Route::get('/milk', array('as' => 'milk', 'uses' => 'ProductsController@index'));
});
我想做这样的事情:
Route::get('/milk', array('as' => 'milk', 'uses' => 'ProductsController@index(1)'));
但这不起作用。
如何做到这一点?
对不起,如果我没有解释清楚。
我希望简单地硬编码(由我设置)某些路线的 type_id,如下所示:
Route::get('/milk', array('as' => 'milk', 'uses' => 'ProductsController@index(1)'));
Route::get('/cheese', array('as' => 'cheese', 'uses' => 'ProductsController@index(2)'));
...
我的 ProductsController 供参考:
class ProductsController extends BaseController {
public function index($type_id) {
$Products = new Products;
$products = $Products->where('type_id', $type_id)->get();
return View::make('products.products', array('products' => $products));
}
}
【问题讨论】:
-
价值从何而来?如果它始终相同,您可以将其作为私有属性添加到您的控制器中。
-
@Jerodev 它被硬编码到路由中。例如牛奶是 1,橙汁是 2,bicuits 是 3 等等。这样我就可以拥有 SEO 友好的名称,否则会很容易,即 Route::get('/product/{id}.....
-
这些值是否来自数据库?如果是这样,您在控制器中找不到产品的 id 吗?
-
@Jerodev 对于这些静态路由,他们没有。
标签: php laravel laravel-4 laravel-routing