2016-03-15 5 views
0

Я хочу создать выпадающий список с двумя ссылками. «Удалить» и ссылку «Изменить».метод laravel в ссылке href?

Для функции удаления я создал форму.

     {!! Former::horizontal_open()->method('DELETE')->action(action("Test\\[email protected]", $comment->id)) !!} 
         {!! Former::danger_submit('Delete') !!} 
         {!! Former::close() !!} 

Форма работает, это означает, что мой комментарий удаляется, если я нажимаю кнопку.

Нет. Я решил удалить кнопку удаления и сделать выпадающий список со ссылкой на удаление. Поэтому мне нужно получить логику этой формы в моем выпадающем меню.

Но у меня нет этого в раскрывающемся списке .. Оптическая «Удалить» кнопка эта часть выпадающего списка:

<li><a href="#"> 
Delete 
</a></li> 

Но я не могу просто поставить свою функцию регулятора в том, что «HREF -link ", причина без метода" DELETE ", это не сработает. Надеюсь, вы все понимаете, что я пытаюсь сказать ... мой английский не самый лучший.

Может ли кто-нибудь помочь мне с этим?

Спасибо за помощь!

Я попробовал, как это раньше, но это не работает либо:

<li> 
    <a> 
     {!! Former::horizontal_open()->method('DELETE')->action(action("Test\\[email protected]", $comment->id)) !!} 
     Delete 
     {!! Former::close() !!} 
    </a> 
</li> 

моя попытка ссылки непосредственно на маршрут:

<li><a href="{{ route('destroy', $comment->id) }}">Delete</a></li> 

и мой маршрут выглядит следующим образом:

Route::delete('/show/{id}', 'Test\\[email protected]')->name('destroythread'); 

но это не сработало для меня ..

все/показать/маршруты:

Route::get('/show/{id}', 'Test\\[email protected]'); 
Route::put('/show/{id}/edit', ['as' => 'editing', 'uses' => 'Test\\[email protected]']); 
Route::get('/show/{id}/edit', 'Test\\[email protected]')->name('edit'); 
Route::delete('/show/{id}', 'Test\\[email protected]')->name('destroy'); 


Route::delete('/show/{id}', 'Test\\[email protected]')->name('destroythread'); // this is the route we are talking about 
+0

Почему бы вам не связать его маршрут, который использует 'TestController @ destroythread'? –

+0

@JilsonThomas, пожалуйста, просмотрите мое обновление :) – ItzMe488

+0

Какую версию laravel вы используете? –

ответ

0

Laravel использует метод подмены сделать 'DELETE', 'PUT', 'PATCH' запросы формы. Как упоминал @Jilson Thomas, вы можете просто создать ссылку непосредственно на маршрут. Я подозреваю, что вы используете находчивые маршруты, поэтому вы пытаетесь отправить запрос DELETE?

Посмотрите на этот раздел в маршрутизации документации, это может помочь вам: https://laravel.com/docs/master/controllers#restful-supplementing-resource-controllers

На основании размещены ваши маршруты, я считаю, что следующие два маршрутов согласования, прежде чем он доберется до нужного маршрута.

Route::put('/show/{id}/edit', ['as' => 'editing', 'uses' => 'Test\\[email protected]']); 
Route::delete('/show/{id}', 'Test\\[email protected]')->name('destroy'); 

Попробуйте переместить нужный маршрут над ними и посмотреть, что произойдет.

Редактировать

<li><a href="{{ route('destroy', $comment->id) }}">Delete</a></li> 

Это произведет запрос GET, поэтому он не будет соответствовать Route :: удалить (...). Предыдущий метод отправлял форму на маршрут. Кроме того, обертка всей формы в теге привязки является недопустимой разметкой.

+0

Я обновлю свой вопрос, пожалуйста, просмотрите его примерно через минуту :) – ItzMe488

+0

okay обновил его – ItzMe488

+0

Есть ли у вас маршруты, определенные до маршрута :: delete (...), который будет размещаться в '/ show/{id}'? Мне просто интересно, есть ли у вас конфликт на ваших маршрутах.php – btl

0

Итак, в соответствии с обсуждением в комментариях вам нужно будет использовать запрос ajax для выполнения запроса delete от тега привязки.

$.ajax({ 
    url: '/show/'+$('#testId').attr('value'), 
    type: 'DELETE', 
    success: function(data){ if(data.success) alert('Deleted'); }, 
    error: function() {} 
}); 

и в маршруте:

Route::delete('/show/{id}', ['as'=>'destroy', 'uses'=>'Test\\[email protected]']); 

HTML

<li><a href="#" id="testId" value="{{$comment->id}}">Delete</a></li> 
+0

Где я могу поставить этот код ajax? '

  • Delete
  • ' thats, как мое меню удаления droptdown выглядит прямо сейчас – ItzMe488

    +0

    Поместите код ajax в файл javascript. –

    +0

    Извините, у меня есть интернет-проблемы вчера. Я попробую это сейчас – ItzMe488

    0

    Альтернативный способ, попробуйте 'Laravel Collective' Html Helper.

    HTML

    {!! Form::open('delete', 
        'method' => 'delete, 
        'route' => ['show.destroy', $comment->id] 
    ) !!} 
    
        {!! Form::submit('Submit') !!} 
    
    {!! Form::close() !!} 
    

    routes.php

    Route::delete('show/{show}', [ 
        'uses' => '[email protected]', 
        'as' => 'show.destroy' 
    ]); 
    
    +0

    , но это кнопка отправки. Я знаю, как сделать обычную кнопку, но я не выпадаю с разделом удаления. – ItzMe488

    Смежные вопросы