[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
沒有留言: