Laravel - การเปลี่ยนเส้นทาง

เส้นทางที่ตั้งชื่อใช้เพื่อตั้งชื่อเฉพาะให้กับเส้นทาง สามารถกำหนดชื่อโดยใช้“as” คีย์อาร์เรย์

Route::get('user/profile', ['as' => 'profile', function () {
   //
}]);

Note - ที่นี่เราให้ชื่อ profile ไปยังเส้นทาง user/profile.

กำลังเปลี่ยนเส้นทางไปยัง Named Routes

ตัวอย่าง

ดูตัวอย่างต่อไปนี้เพื่อทำความเข้าใจเพิ่มเติมเกี่ยวกับการเปลี่ยนเส้นทางไปยังเส้นทางที่ตั้งชื่อ -

Step 1 - สร้างมุมมองที่เรียกว่า test.php และบันทึกไว้ที่

resources/views/test.php.

<html>
   <body>
      <h1>Example of Redirecting to Named Routes</h1>
   </body>
</html>

Step 2 - ใน routes.phpเราได้ตั้งค่าเส้นทางสำหรับ test.phpไฟล์. เราได้เปลี่ยนชื่อเป็นtesting. เรายังได้กำหนดเส้นทางอื่นredirect ซึ่งจะเปลี่ยนเส้นทางคำขอไปยังเส้นทางที่ระบุ testing.

app/Http/routes.php

Route::get('/test', ['as'=>'testing',function() {
   return view('test2');
}]);

Route::get('redirect',function() {
   return redirect()->route('testing');
});

Step 3 - ไปที่ URL ต่อไปนี้เพื่อทดสอบตัวอย่างเส้นทางที่ตั้งชื่อ

http://localhost:8000/redirect

Step 4 - หลังจากดำเนินการตาม URL ข้างต้นคุณจะถูกเปลี่ยนเส้นทางไปยัง http: // localhost: 8000 / test ในขณะที่เรากำลังเปลี่ยนเส้นทางไปยังเส้นทางที่ตั้งชื่อ testing.

Step 5 - หลังจากดำเนินการ URL สำเร็จคุณจะได้รับผลลัพธ์ต่อไปนี้ -

กำลังเปลี่ยนเส้นทางไปยัง Controller Actions

ไม่เพียง แต่ตั้งชื่อเส้นทาง แต่เรายังสามารถเปลี่ยนเส้นทางไปยังการทำงานของคอนโทรลเลอร์ได้อีกด้วย เราจำเป็นต้องส่งตัวควบคุมและชื่อของไฟล์actionไปยังวิธีการดำเนินการดังที่แสดงในตัวอย่างต่อไปนี้ หากคุณต้องการส่งผ่านพารามิเตอร์คุณสามารถส่งผ่านเป็นอาร์กิวเมนต์ที่สองของวิธีการดำเนินการ

return redirect()->action(‘NameOfController@methodName’,[parameters]);

ตัวอย่าง

Step 1 - ดำเนินการคำสั่งต่อไปนี้เพื่อสร้างตัวควบคุมที่เรียกว่า RedirectController.

php artisan make:controller RedirectController --plain

Step 2 - หลังจากดำเนินการสำเร็จคุณจะได้รับผลลัพธ์ต่อไปนี้ -

Step 3 - คัดลอกรหัสต่อไปนี้ไปยังไฟล์

app/Http/Controllers/RedirectController.php.

app/Http/Controllers/RedirectController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class RedirectController extends Controller {
   public function index() {
      echo "Redirecting to controller's action.";
   }
}

Step 4 - เพิ่มบรรทัดต่อไปนี้ใน app/Http/routes.php.

app/Http/routes.php

Route::get('rr','RedirectController@index');
Route::get('/redirectcontroller',function() {
   return redirect()->action('RedirectController@index');
});

Step 5 - ไปที่ URL ต่อไปนี้เพื่อทดสอบตัวอย่าง

http://localhost:8000/redirectcontroller

Step 6 - ผลลัพธ์จะปรากฏดังที่แสดงในภาพต่อไปนี้