[英]Laravel - How to pass a fixed value to controller from a fixed url on rout
如果我的網址是user / new,我想將ID“ 0”傳遞給控制器,如何在laravel中的route.php上執行此操作?
我曾想過像這樣的事情,但我認為不是那么簡單。
Route::get('user/new','UserController@edit', ['id'=>'0']);
Route::get('user/edit/{id}','UserController@edit');
使用正常的.htaccess,我會執行以下操作:
RewriteRule ^user/new /www/user/edit.php?id=0 [L,QSA]
RewriteRule ^user/(.*) /www/user/edit.php?id=$1 [L,QSA]
我需要中間件嗎? 有更簡單的方法嗎?
從語義上講,這很奇怪,無論如何創建具有edit
功能的用戶……
為什么不使用php默認參數值呢?
// UserController.php
public function edit($id = 0) // NOTICE THIS
{
// your id is zero if none passed (when /new is called)
}
您已經存在的edit
不會更改,您也不必觸摸路線。
一種方法是在路由中使用閉包,如下所示:
Route::get('user/new', function() {
return App::make('UserController')->edit(0);
});
但是Laravel的方式是使用RESTful資源控制器 ,它為您創建,創建和刪除路由:
Route::resource('user', 'UserController');
我不確定為什么要這樣做,但是可以在控制器中執行以下操作:
function newuser()
{
return $this->edit(0);
}
function edit($id)
{
// Do stuff
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.