Как передать несколько аргументов с url (routing) в laravel 5.1

LARAVEL 5.1

Я хочу отредактировать мою таблицу с идентификатором и TktID.

Я хочу передать эти два параметра для редактирования метода моего TestController.

Моя ссылка:

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

Мой route.php

Route::get('sig/edit{id}{ticketid}','[email protected]');

изменить метод контроллера:

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

Как передать здесь два аргумента в route.php для контроллера.

Ответ 1

Вы забыли конец скобки

У вас есть ошибка в вашем файле rout.php:

Route::get('sig/edit{id}{ticketid}', '[email protected]');

Должно быть:

Route::get('sig/edit/{id}/{ticketid}', '[email protected]');

Обратите внимание на косую черту после редактирования и идентификатора.

И в представлении это должно быть любым из следующего:

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

Или же

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

Я надеюсь, что это помогает вам. Приветствия.

Ответ 2

 <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'];

Ответ 3

Маршрут

Route::get('sig/edit{id}{ticketid}','[email protected]')->name(sig.edit);

ссылка

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

Ответ 4

Я нашел этот способ, чтобы сохранить ваш URL-адрес одинаковым образом и доступ к нескольким параметрам

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

маршрут

Route::get('sig/edit', '[email protected]');

Доступ к значениям параметров в контроллере

контроллер

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

Примечание: импорт ввода в контроллере

use Illuminate\Support\Facades\Input;

Ответ 5

в файле routes/web.php - этот работает для меня.

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

Теперь он должен обрабатывать каждый аргумент/параметр.

Надеюсь, что это работает !

Ответ 6

В моем случае я передаю два параметра:

МАРШРУТЫ

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

В LoanController

public function loanset($debitid, $creditid)
{
    $debit_user= UserModel::findOrFail($debitid);
    $credit_user= UserModel::findOrFail($creditid);
    return view('load.add',compact('debit_user','credit_user'));
}

Этот пример может быть полезен.

Ответ 7

Поскольку вы передаете такие параметры, как этот ? Name = value, вам не нужно устанавливать для него маршрут, вы можете напрямую получить к нему доступ в своем контроллере с помощью внедрения зависимостей

Вы должны добавить это выше вашего класса

use Illuminate\Http\Request;

Затем в контроллер вставьте его & получить значения параметров по имени:

    public function edit(Request $request)
    {
        //
    $id= $request->id;
 $tkt= $request->tkt_id;
    }