Laravel – Chuyển hướng

Chuyển hướng đến Named Routes

Named Routes là dùng 1 tên để đặt cho 1 route. Có thể dùng cấu trúc sau:

Route::get('user/profile', function () {
    //
})->name('profile');

Ở đây dùng tên profile để đặt cho route user/profile.

Ví dụ

Step 1 : Tạo file resources/views/test.blade.php với nội dung như sau:

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

Step 2 : Thêm route test, return file view test.blade.php đã tạo ở trên. Và 1 route khác là redirect để chuyển hướng đến route test.
routes/web.php

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

Step 3 : Vào url http://localhost:8000/redirect sẽ được chuyển hướng đến http://localhost:8000/test và hiển thị nội sau.

Chuyển hướng đến Controller Actions

Chúng ta có thể tạo chuyển hướng đến 1 function của controller thông qua hàm action(). Chúng ta cần truyền vào tên Controller và tên function trong Controller này muốn chuyển hướng đến. Bạn cũng có thể truyền tham số như ví dụ dưới.

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

Ví dụ

Step 1 : Tạo controller RedirectController bằng lệnh command bên dưới.

Step 2 : Thêm code sau vào controller mới tạo app/Http/Controllers/RedirectController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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

Step 3 : Thêm code sau vào routes/web.php

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

Step 4 : vào http://localhost:8000/redirectcontroller sẽ được chuyển hướng đến
http://localhost:8000/rr và kết quả như hình