[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() 會改變改變當前訪問的 url2. 使用 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
沒有留言: