我是Laravel的新手。我正在从教程中学习Laravel,却遇到了一个我无法解决的问题。
我认为我在路由方面遇到问题,但找不到它
有趣的是,如果function updateUserStatus(string $status, $userID){
$stmt = \DB::SELECT('CALL UPDATE_STATUS($status, $userID)');
}
是href
,那么它将转到创建页面,但是当我需要使用ID时,它将无法正常工作...
我对帖子和类别具有相同的功能,但是对于这两个而言一切正常。所以,我真的需要您的帮助才能看到我看不到的东西。我有这些文件:
{{route('tag.create'}}
:
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'
]);
-最初,我尝试销毁该元素,然后尝试返回create view(因为当我通过/ tag / create rout时一切正常),但在这里均无效
TagsController.php
答案 0 :(得分:1)
我认为您应该将路由设置为Route::get('/tag/delete/{id}',[ 'uses'=>'TagsController@destroy', 'as'=> 'tag.delete' ]);
,因为在您的情况下,您正在告诉路由期望有一个名为$id
的变量
答案 1 :(得分:0)
请将web.php中路由设置中的参数从$ id更改为id。我应该解决你的问题。
例如:Route::get('/tag/delete/{id}',[
'uses'=>'TagsController@destroy',
'as'=> 'tag.delete'
]);
谢谢!!。