路由是laravel所有程序的入口,可以这么说,在laravel中传统意义上的“网页” 已经不存在,在传统的网站建设思维中,网站是由一个个静态或动态的网页构成。而在laravel中,只有一个个的任务,网址url代表的是要执行什么样的任务,而路由的 作用就是解析url的内容,将其分配给具体的函数去执行。
当然,传统意义上的“静态网页”或者“静态文件”是有存在的价值的,比如js文件、css文件、图片文件等。在laravel中,要访问这些文件,就必须把它放到public目录之下(经过端口设置之后,public目录就是这个网站实际的根目录)。当然你也可以把传统的PHP网页放在这个目录下,使用时就和传统网页没有区别,只是这样做就不是纯粹的laravel了。
当url没有对应于public之下的某个具体文件时,url就提交给路由去分解为具体的任务了。
laravel5的路由文件的位置:app\http\routes.php(与其他低级版本不同)。
路由的基本形式:
Route::get (url地址 , function(){....} );
其中的get可以替换成post \put\delete,这对应于http请求的四种基本模式,同时还可以是any,对应于任何形式的请求。
这个命令的意思是:当输入的url与其中的“url地址”匹配的时候,将执行后面的function中的任务。
这里的"url地址"可以是一个具体地址,例如:“/","/mng","mng","mng/test",其中"/"代表网站根目录,也可以是一个关于url的模板(后面再介绍)。这时,只有输入的url与这个地址完全一致时,才会执行后面的function。
例如你在路由中添加一条:
Route::get (‘hello' , function(){
return "Hello world";
} );
假设你的网站根目录对应的网址是localhost,那么访问http://localhost/hello,那么你就可以看到“Hello world”;
这里需要说明的是:
一般情况下,你需要将你的网站的根目录映射为你的laravel项目的public目录,例如你的项目"laravel_example"位于:d:\\www\laravel_example,那么你的网站根目录就应该是:d:\\www\laravel_example\
当然,这在开发时也会带来一些不便,比如就没法使用phpmyadmin,没法访问同时开发的其他项目
一个临时的办法是,你可以直接访问publid文件夹来访问你的项目,比如你的网站根目录是:d:\\www\,上面的例子中,你访问http://localhost/laravel_example/public/hello就可以看到你的网站了。
这个办法有个很大的问题就是你的项目中,如果要访问项目的根目录public,但实际会直接跳转到网站根目录而发生错误。
解决这个问题的一个办法是:
用cmd进入dos模式,进入你项目的目录(上面的例子就是d:\\www\laravel_example),执行命令
php artisan serve
接下来用浏览器访问http://localhost:8000/,就可以正常访问你的项目了。