#php #laravel
#php #laravel
Вопрос:
Я новичок в Laravel. Я изучаю Laravel из руководства и сталкиваюсь с одной проблемой, которую не могу решить.
Я думаю, что у меня где-то проблема с маршрутизацией, но я не могу ее найти
Забавно, что если href
есть {{route('tag.create'}}
, то он переходит к созданию страницы, но когда мне нужно использовать ID, это не работает… У меня была такая же функциональность для сообщений и категорий, но для этих двух все работало нормально. Итак, мне действительно нужна ваша помощь, чтобы увидеть то, чего я не вижу. У меня есть эти файлы:
index.blade.php
:
@extends('layouts.app')
@section('content')
<div class="card">
<div class="card-body">
<table class="table table-hover">
<thead>
<th>
Tag name
</th>
<th>
Delete
</th>
</thead>
<tbody>
@if($tags->count()>0)
@foreach($tags as $tag)
<tr>
<td>
{{$tag->tag}}
</td>
<td>
<a href="{{route('tag.delete', ['id' =>$tag->id])}}" class="btn btn-danger btn-xs"><i class="fa fa-trash" aria-hidden="true"></i></a>
</td>
</tr>
@endforeach
@else
<tr>
<th colspan="5" class="text-center">
No tags yet
</th>
</tr>
@endif
</tbody>
</table>
</div>
</div>
@stop
web.php
— это место, где я определяю маршруты для тегов для TagsController.php
:
//Tags
Route::get('/tags',[
'uses'=>'TagsController@index',
'as'=> 'tags'
]);
Route::post('/tag/update/{$id}',[
'uses'=>'TagsController@update',
'as'=> 'tag.update'
]);
Route::get('/tag/create',[
'uses'=>'TagsController@create',
'as'=> 'tag.create'
]);
Route::post('/tag/store',[
'uses'=>'TagsController@store',
'as'=> 'tag.store'
]);
Route::get('/tag/delete/{$id}',[
'uses'=>'TagsController@destroy',
'as'=> 'tag.delete'
]);
TagsController.php
— сначала я попытался уничтожить элемент, затем я попытался вернуть create view (потому что, когда я перехожу через /tag / create route, все работает), но ни то, ни другое здесь не сработало
public function destroy($id)
{
return view ('admin.tags.create');
/*
Tag::destroy($id);
Session::flash('success', 'Tag deleted succesfully');
return redirect()->back();*/
}
Комментарии:
1. Измените
{$id}
на{id}
.
Ответ №1:
Я считаю, что вам следует задать для маршрута значение Route::get('/tag/delete/{id}',[ 'uses'=>'TagsController@destroy', 'as'=> 'tag.delete' ]);
, потому что в вашем случае вы указываете маршруту ожидать вызываемую переменную $id
Комментарии:
1. Спасибо, приятель. Ненавижу себя за то, что не увидел идентификатор $ before.
2. В любое время, приятель. Не корите себя за это, такие вещи часто случаются. Мы забываем и добавляем бесполезный $. Убедитесь, что вы также изменили его в обновлении. Удачи, и если вы хотите, пожалуйста, примите мой ответ
Ответ №2:
Пожалуйста, измените параметры в настройке маршрута в web.php из $ id в id. Я должен решить вашу проблему.
Например: Route::get('/tag/delete/{id}',[
'uses'=>'TagsController@destroy',
'as'=> 'tag.delete'
]);
Спасибо !!.