Laravel应用的 大多数路由都将在 app/Http/routes.php 中定义,大多数基本的 Laravel 路由都只接受一个 URI 和 一个 闭包(Closure)
参数。下面是一个简单的GET路由:
Route::get('/', 'WelcomeController@index');
Route
: 声明一个路由;get
:即定义一个GET路由,除get外,还有post
、put
、delete
路由;/
:即指向网站WelcomeController@index
:前面为控制器,后面是调用控制器中的方法
该路由是用户访问根目录 /
时,执行控制器WelcomeController
中的index
方法。
上面路由调用控制器app/Http/Controllers/WelcomeController.php中的index()
方法:
public function index() { return view('welcome'); }
该方法返回了一个welcome视图,该视图即为resources/views/welcome.blade.php。也可以直接在方法中返回指定的内容,如修改index()
方法:
public function index() { return 'Hello World'; // return view('welcome'); }
刷新浏览器,会看到页面输出内容已经改变。
下面新建一个contact路由,在路由中增加下面的代码:
Route::get('/contact', 'WelcomeController@contact');
contact
前面的 /
可以省略不写。该路由会调用WelcomeController
控制器下面的contact()
方法,因此在WelcomeController
控制器中添加下面的方法:
public function contact() { return 'Contact me'; }
之后访问http://laravel.dev/contact,将得到下面的结果:
方法中除了可以返回字符串,也能返回json数据(API开发)或html视图文件等。Laravel默认的视图文件位于resources/views目录下。如果需要为视图文件指定子目录,则用下面的方法调用:return view('pages/contact');
,也可以更加简单的用这种方法:return view('pages.contact');
。
假如把上面的contact()
方法中的内容改成return view('pages.contact');
,那么我们需要在resources/views下创建一个pages文件夹,之后在pages文件夹中创建contact.blade.php文件,在文件中添加下面的内容,该文件的内容即为contact()
的返回结果。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>Contact me</h1> </body> </html>
现在再次刷新浏览器查看结果。