[Laravel] 使用 view() 或 redirect() 的選擇

view() 的使用

  1. // 簡單的返回
  2. return view('static_pages/home');
  3. return view('static_pages.home');
  4.  
  5. // 帶參數的返回
  6. $title = 'Hello Laravel';
  7. $user = User::find(1);
  8.  
  9. // view() 的第二個參數接受一個數組
  10. return view('static_pages/home', compact('user'));
  11.  
  12. // 所傳遞的變量在blade模板中用 {{ $title }} 或 {!! $title !!} 輸出
  13. return view('articles.lists')->with('title',$title);
  14.  
  15. // 前者作為文本輸出,後者作為頁面元素渲染


redirect() 的使用

  1. // 簡單的返回
  2. // 假設我們當前的域名為:http://localhost 則重定向到 http://localhost/home
  3. return redirect('home');
  4.  
  5. // 基於路由的重定向
  6. return redirect()->route('home');
  7.  
  8. // 基於控制器的重定向
  9. return redirect()->action('UserController@index')
  10.  
  11. // 帶參數的返回
  12. return redirect('home')->with('title', 'Hello Laravel');
  13.  
  14. // 將表單值保存到 Session 中,可以用 {{ old('param') }} 來獲取
  15. return redirect('home')->withInput();
  16.  
  17. // 接收一個字符串或數組,傳遞的變量名為 $errors
  18. return redirect('home')->withErrors('Error');


view() 和 redirect() 的異同

1. 使用 return view() 不會改變當前訪問的 url , return redirect() 會改變改變當前訪問的 url
2. 使用 return view() 不會使當前 Session 的 Flash 失效 ,但是 return redirect() 會使 Flash 失效
3. 在 RESTful 架構中,訪問 Get 方法時推薦使用 return view() ,訪問其他方法推薦使用 return redirect()

Route 的使用

Laravel 獲取 Route Parameters (路由參數) 的 5 種方法
Get Laravel Route Parameters in Middleware
How To Pass GET Parameters To Laravel From With GET Method ?
laravel redirect to route with GET parameter
Lumen: get URL parameter in a Blade view
laravel 5.2 How to get route parameter in blade?
How can I pass parameter in route href={{Route('test'./$val}} to blade view?
named route with parameter laravel
laravel redirect to route with GET parameter
Request::has() returns false even when parameter is present

Source

Laravel 視圖 view() 與重定向 redirect() 的使用

Image Source

Laravel Routing

沒有留言:

技術提供:Blogger.