簡體   English   中英

帶有POST請求的Laravel路由URL參數

[英]Laravel Routing URL Parameters with POST Request

如果我有一條類似以下的路線。

Route::post('/user/{id}', 'UserController@my_function');

如何將控制器功能設置為這樣,以便可以使用URL參數和POST請求正文數據? 我希望它類似於下面的代碼,但這是正確的嗎?

public function my_function($id, Request $request){}

根據laravel文檔,您的操作方式是正確的。

如果您的控制器方法也希望從route參數輸入,請在其他依賴項之后列出您的route參數。 例如,如果您的路線是這樣定義的:

 Route::put('user/{id}', 'UserController@update');

您仍然可以鍵入Illuminate \\ Http \\ Request並通過定義如下所示的控制器方法來訪問id參數:

這是使用您發送的數據的示例:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Update the given user.
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
       $request->all() // here you're acessing all the data you send it
       $user = User::find($id) // here you're getting the correspondent user from the id you send it

    }
}

有關更多信息: 文檔

可以,但是我喜歡在返回視圖時像這樣傳遞id

public function my_function(Request $request){
return view('myfile',['id'=>$id]);
}

每當您公開這樣的url參數時,都必須使用get request參數將其傳遞給例如localhost:3000 / user / 1

Route::get('/user/{id}', 'UserController@my_function');

public function my_function($id){ //do something }

但是,如果您在保留下傳遞ID,即通過帖子隱藏。

Route::post('/user', 'UserController@my_function');

public function my_function(Request $request){ // do something $request->id }

也許這就是你想做的

Route::put('user/{id}', 'UserController@my_function');

public function my_function($id){ //do something }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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