簡體   English   中英

如何從 Laravel 路由制作 URL

[英]How to make URL from Laravel routes

我有 Laravel 后端,我正在嘗試為它制作 iOS,但沒有文檔。 這是我第一次使用 Laravel,對路由和中間件很困惑。 如何從下面的代碼組成 URL

Route::middleware('auth:api')->get('/user', function (Request $request) {
   return $request->user();
});

// Passport authentication
Route::group([
   'prefix' => 'auth'
], function () {
   Route::post('login', 'AuthController@login');
   Route::post('signup', 'AuthController@signup');

   Route::group([
     'middleware' => 'auth:api'
   ], function() {
       Route::get('logout', 'AuthController@logout');
       Route::get('user', 'AuthController@user');
       Route::resource('materials', 'MaterialsController');
       Route::resource('packages', 'PackagesController'); ```

命名您的路線並使用route()助手獲取路線的完整 URL。 例如;

// In routes/web.php
Route::get('logout', 'AuthController@logout')->name('auth.logout');

// Anywhere in your context
route('auth.logout'); // will return full URL, e.g; 'http://localhost/logout'

有關更多詳細信息,請參閱此鏈接;

https://laravel.com/docs/8.x/routing#generating-urls-to-named-routes https://laravel.com/docs/8.x/helpers#method-route

您的路線的完整路徑是某些部分組合的結果:

  • 基本 URL(域、子域、IP)
  • 路由前綴(可選)
  • 路由定義(基本上,您的端點)

web.php定義的如下路由為例:

// web.php
Route::get('my-cool-route', MyCoolController::class);

然后,該端點將具有以下完整路徑:

foobar.com/my-cool-route
           ^^^^^^^^^^^^^

foobar.com部分將從.env文件的APP_URL鍵中.env

你也可以已經為路由添加了前綴(由你或 Laravel),例如寫在api.php文件中的api.php

// api.php
Route::get('register', SignUpController::class);

默認情況下, api.php的路由將以api為前綴。 所以路線看起來像這樣:

foobar.com/api/register
          ^^^^^^^^^^^^^

如果你想知道這個前綴是在哪里添加的,你可以去RouteServiceProvider.php看看它是如何應用的

您可以在 Artisan 的幫助下輸出您的路線列表。

php artisan route:list

當然,這會拋出你所有的站點路由,所以你可以通過很多選項來過濾它們,比如path example:

php artisan route:list --path='materials'

這將列出路徑與%materials%匹配的所有路線。

您可以使用--help (或-h )選項查看過濾器選項的完整列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM