簡體   English   中英

Laravel-如何從Rout上的固定URL向控制器傳遞固定值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM