首页 > 解决方案 > index.php?id=1 和 index.php/id/1 的区别

问题描述

  1. 如果我想创建 RESTful API,我应该选择哪一个?
  2. index.php/id/1 的 URL 是如何工作的?我认为这是一个文件路径,而不是一个 URL。
  3. 如果我想获取 abc.com/img/1.png 格式的图像,它可能与 abc.com/img/{param} 有冲突。我该如何解决?

顺便说一句,我现在使用 Laravel。

非常感谢。

标签: laravelresturlnginxlaravel-routing

解决方案


区别在于路由模型绑定

https://laravel.com/docs/5.7/routing#route-model-binding

这使您可以获取具有传递到路由中的 id 的模型

因此,例如这样的路线:

Route::get('users/{user}', 'UsersController@getUser');

将允许您在您的方法中执行此操作:

use App\User

public function getUser(User $user) {

    return $user;

}

这意味着您可以获得路线中 id 的完整记录。

所以你的问题:

1:我将使用它来发送模型 ID 2:路由中的变量按顺序传递给允许您访问它们的方法。3:您需要小心您的路线,因为您可能会遇到冲突。话虽如此,Laravel 并没有使用传统的目录结构进行存储。我相信,如果您有 /public/img 的文件夹结构,并且该文件夹包含一个名为 1.png 的 img ,它将获得图像,但我尚未对此进行测试。


推荐阅读