Как передать несколько аргументов с 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;
}