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

view() 的使用

// 簡單的返回
return view('static_pages/home');
或
return view('static_pages.home');

// 帶參數的返回
$title = 'Hello Laravel';
$user = User::find(1);

// view() 的第二個參數接受一個數組
return view('static_pages/home', compact('user'));

// 所傳遞的變量在blade模板中用 {{ $title }} 或 {!! $title !!} 輸出
return view('articles.lists')->with('title',$title);

// 前者作為文本輸出,後者作為頁面元素渲染


redirect() 的使用

// 簡單的返回
// 假設我們當前的域名為:http://localhost 則重定向到 http://localhost/home
return redirect('home');

// 基於路由的重定向
return redirect()->route('home');

// 基於控制器的重定向
return redirect()->action('UserController@index')

// 帶參數的返回
return redirect('home')->with('title', 'Hello Laravel');

// 將表單值保存到 Session 中,可以用 {{ old('param') }} 來獲取
return redirect('home')->withInput();

// 接收一個字符串或數組,傳遞的變量名為 $errors
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.