如何在laravel 5.1中使用url(路由)传递多个参数

时间:2015-12-11 06:06:35

标签: php laravel laravel-5.1

LARAVEL 5.1

我想编辑具有ID和TktID的表格。

我想将这两个参数传递给我的TestController的编辑方法。

我的链接:

<a href="/sig/edit?id={{$value->id}}&ticketid={{$value->ticketid}}" title="Edit signature">

我的路线.php

Route::get('sig/edit{id}{ticketid}','TicketsController@edit');

控制器的编辑方法:

 public function edit($id, $ticketid)
    {
        //
    }

如何将route.php中的两个参数传递给控制器​​。

7 个答案:

答案 0 :(得分:14)

你忘了结束括号

您的routes.php文件中有错误:

Route::get('sig/edit{id}{ticketid}', 'TicketsController@edit');

应该是:

Route::get('sig/edit/{id}/{ticketid}', 'TicketsController@edit');

注意编辑 id 之后的正斜杠。

在视图中,它应该是以下任何一种:

<a href="{{ url('sig/edit/ ' . $value->id . '/' . $value->ticketid .')}}" title="Edit signature">

或者

<a href="/sig/edit/{$value->id}/{$value->ticketid}" title="Edit signature">

我希望这会帮助你。欢呼声。

答案 1 :(得分:4)

 <a class="getValues" href="/sig/edit" title="Edit signature"/>Edit</a>
    <input type="hidden" id="id" name="id" value"={{$value->id}}"/>
    <input type="hidden" id="ticketid" name="ticketid" value="{{$value->ticketid}}"/>

jQuery(document).ready(function(){
     var $id=jQuery('#id').val();
     var $ticketid=jQuery('#ticketid').val();

     jQuery('getValues').on('click',function(){
          $.ajax({
            url:'yourController/controller'sFunction',
                  data:{'id':$id,'ticketid':$ticketid},
         }).success(function(response){
                alert(rseponse);
            });
     })
});

将此行代码粘贴为控制器函数中的第一行...

$inputs = Input::all();

并获取输入值

echo    $ticketid=$inputs['ticketid'];
 echo "<br/>";
 echo     $id=$inputs['id'];

答案 2 :(得分:1)

<强>路线

Route::get('sig/edit{id}{ticketid}','TicketsController@edit')->name(sig.edit);

链接

<a href="{{route('sig.edit',[$value->id,$value->ticketid])}}" title="Edit signature">

答案 3 :(得分:1)

我发现这种方法可以使您的网址保持相同并访问多个参数

<a href="/sig/edit?id={{$value->id}}&ticketid={{$value->ticketid}}" title="Edit signature">

路线

Route::get('sig/edit', 'TicketsController@edit');

访问控制器中的参数值

控制器

public function edit(){
$id = Input::get('id');
$ticketId = Input::get('ticketid');
}

注意:在控制器中导入输入

use Illuminate\Support\Facades\Input;

答案 4 :(得分:0)

就我而言,我传递了两个这样的参数:

<强>路线

x

在LoanController中

Route::get('/add/{debitid}/{creditid}',
    ['as'=>'loan_add',
    'uses'=>'LoanController@loanset']);

此示例可能会有所帮助。

答案 5 :(得分:0)

routes/web.php文件中的

-这对我有用。

Route::any('/documents/folder/{args?}', function($args){
   $args = explode('/', $args);
   return $args;
})->where('args', '(.*)');

它现在应该处理每个参数/参数。

希望它有效!

答案 6 :(得分:0)

在传递诸如?name = value 之类的参数时,无需为其设置路由,您可以通过依赖注入直接在控制器中访问它 strong>

您必须在班级上方添加

import tkinter as tk

LARGE_FONT = ("Verdana", 12)


class mainapp(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        # self.geometry("800x600")
        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)

        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}

        for F in (StartPage, NewData):
            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):
        frame = self.frames[cont]
        frame.tkraise()


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.configure(background='white')
        labeltop = tk.Label(self, text="Hello\n"
                                       "Please Select a option:",
                            bg="white", fg="green", height=4, width=30, font=LARGE_FONT)
        labeltop.grid(row=0, column=0, pady=10, padx=10, columnspan=2)

        self.logo = tk.PhotoImage(file="logo.gif")
        logolabel=tk.Label(self, image=self.logo)
        logolabel.grid(row=0, column=3)

        button1 = tk.Button(self, text="Option1", fg="White", bg="Green", height=6, width=30,
                            command=lambda: controller.show_frame(NewData))
        button1.grid(row=1, column=0, padx=1, pady=10)


class NewData(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.configure(background='white')
        label = tk.Label(self, text="Option1", font=LARGE_FONT)
        label.grid(pady=10, padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        E1 = tk.Entry()
        E1.pack()

        button1.grid()

app = mainapp()
app.mainloop()

然后在控制器中注入它并按名称获取参数值:

use Illuminate\Http\Request;