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 - ผลลัพธ์จะปรากฏดังที่แสดงในภาพต่อไปนี้