Php 为什么url后面有问号?
我已经创建了路线Php 为什么url后面有问号?,php,laravel,routing,Php,Laravel,Routing,我已经创建了路线 Route::get('/files/{file}/edit', 'FilesController@edit')->middleware(['file_owner'])->name('files.edit'); 来自中间件的代码: $file = $request->route('file'); if($file->owner_id === auth()->user()->id){ return $next
Route::get('/files/{file}/edit', 'FilesController@edit')->middleware(['file_owner'])->name('files.edit');
来自中间件的代码:
$file = $request->route('file');
if($file->owner_id === auth()->user()->id){
return $next($request);
}
当我从我的视野进入这条路线时
<form action="{{route('files.edit', $file->id)}}" >
<button type="submit" class="btn btn-success btn-sm">Edit file</button>
</form>
编辑文件
我得到的链接如下:http://testproject.local/files/17/edit?
它不会影响功能,但对我来说非常有趣,问号出现在这里的原因是什么?这个
?
表示查询参数的开始
当您的
没有method=”“
属性时,它会在提交时执行GET
请求。所有
,
等元素都以查询参数的形式附加到URL:
https://www.example.com?name=whatever&something=another...
由于您的
中没有任何
或
元素,因此只需添加一个?
来表示您没有任何元素
同样,这不会影响功能,但会提出问题;您需要一个
吗?您只需使用锚点
即可处理简单的GET
请求,而无需查询参数:
<a href="{{ route('files.edit', $file->id) }}">Edit File</a>
这将带您到达路线
http://testproject.local/files/17/edit
,没有附加?
。因为表单的方法是GET
,这意味着表单数据作为一个函数附加到操作中。但是由于表单中没有任何输入,因此只添加了一个?
。默认的
方法是GET,这意味着通过url传递值,其工作方式类似于
example.com?key=value
您没有指定值,但方法保留,并附加?
您正在发送HTTP请求GET方法,在该方法中,您可以在url?key=value等问号后传递url中的参数和值,然后在服务器端处理输入。您的表单中没有任何输入,因此问号后面没有任何内容